C# 使用同步上下文(Synchronization)切换UI线程

使用前探究:WPF中可以使用Dispatcher然后Invoke一个新方法,然后方法内部就可以对控件进行修改了,那么这个同步上下文有什么好处呢?

        两个的作用其实是一样的,但是使用Synchronization是WPF、Winform、ASP.NET都可以使用的,提高了代码的可移植性

使用:

SynchronizationContext synchronizationContext = SynchronizationContext.Current;

Task.Run(() =>
{
    // 需要在UI线程执行的代码
    synchronizationContext.Post(_ =>
    {
        // 在这里安全地更新UI控件
    }, null);
});

想要省事还是用BeginInvoke(Winform)、Dispatcher(WPF)

你可能感兴趣的:(C#,winform,wpf,wpf,c#,windows)