Invoke和BeginInvoke

Invoke和BeginInvoke都是操作其他线程的方法,区别在于一个是同步的一个异步的,简单来说就是一个是立即执行,另一个是等要操作线程结束后再执行。

简单的例子:

      private void C()
        {
            Debug.WriteLine("c");
        }
        private void A()
        {
            Debug.WriteLine("a");
        }
        private void B()
        {
            Debug.WriteLine("b");
        }

        private delegate void BeginInvokeDelegate();

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            A();
            this.Dispatcher.Invoke(new BeginInvokeDelegate(C));
          //this.Dispatcher.BeginInvoke(new BeginInvokeDelegate(C));
            B();
          }

这个 Invoke执行结果是a,c,b   BeginInvoke执行结果是a,b,c

posted @ 2012-04-26 15:40  爱喝可乐  阅读(334)  评论(1编辑  收藏  举报