none
Dispatcher.BeginInvoke界面还是会卡死 RRS feed

  • 问题

  • 使用Dispatcher.BeginInvoke界面还是会卡死是为什么啊,刚接触WPF,大神帮帮我啊

    private void button1_Click(object sender, RoutedEventArgs e)
            {
                Add();
            }

    private void Add()
            {
                Dispatcher.BeginInvoke((Action)(() =>
                {
                    System.Threading.Thread.Sleep(3000);
                    MessageBox.Show("123");
                }));
            }

    2012年10月10日 9:58

答案

全部回复

  • Dispatcher.BeginInvoke同样是在使用UI线程,你可以使用单独的线程例如BackgroundWorker

    Wanpeng wanpeng.ones@gmail.com

    2012年10月11日 2:35
  • Action a = new Action(() =>
    {
                    System.Threading.Thread.Sleep(5000);
                    MessageBox.Show("123");
    });
                a.BeginInvoke(null,null);

    这样为什么就不会卡死呢?

    • 已标记为答案 LYGHOST 2012年10月12日 1:04
    • 取消答案标记 LYGHOST 2012年10月12日 1:04
    2012年10月11日 7:02
  • 这实际上是自动创建了新的线程。

    Wanpeng wanpeng.ones@gmail.com

    • 已标记为答案 LYGHOST 2012年10月12日 1:04
    2012年10月11日 9:32
  • 好的,明白了,谢谢你
    2012年10月12日 1:04