C#子线程更新UI

2024-09-29  本文已影响0人  小羊爱学习

WPF中使用:

            Task.Run(() =>
            {
                Console.WriteLine("222222-{0}", Thread.CurrentThread.ManagedThreadId);
                Application.Current.Dispatcher.Invoke(new Action(() =>
                {
                    Console.WriteLine("333333-{0}", Thread.CurrentThread.ManagedThreadId);
                }));
                Console.WriteLine("444444-{0}", Thread.CurrentThread.ManagedThreadId);
            });

            Task.Run(() =>
            {
                Console.WriteLine("222222-{0}", Thread.CurrentThread.ManagedThreadId);
                Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    Console.WriteLine("333333-{0}", Thread.CurrentThread.ManagedThreadId);
                }));
                Console.WriteLine("444444-{0}", Thread.CurrentThread.ManagedThreadId);
            });

WinForm中使用:

            Task.Run(() =>
            {
                Console.WriteLine("222222-{0}", Thread.CurrentThread.ManagedThreadId);
                Invoke(new Action(() =>
                {
                    Console.WriteLine("333333-{0}", Thread.CurrentThread.ManagedThreadId);
                }));
                Console.WriteLine("444444-{0}", Thread.CurrentThread.ManagedThreadId);
            });

            Task.Run(() =>
            {
                Console.WriteLine("222222-{0}", Thread.CurrentThread.ManagedThreadId);
                BeginInvoke(new Action(() =>
                {
                    Console.WriteLine("333333-{0}", Thread.CurrentThread.ManagedThreadId);
                }));
                Console.WriteLine("444444-{0}", Thread.CurrentThread.ManagedThreadId);
            });
上一篇下一篇

猜你喜欢

热点阅读