使用前探究:WPF中可以使用Dispatcher然后Invoke一个新方法,然后方法内部就可以对控件进行修改了,那么这个同步上下文有什么好处呢?
? ? ? ? 两个的作用其实是一样的,但是使用Synchronization是WPF、Winform、ASP.NET都可以使用的,提高了代码的可移植性
使用:
SynchronizationContext synchronizationContext = SynchronizationContext.Current;
Task.Run(() =>
{
// 需要在UI线程执行的代码
synchronizationContext.Post(_ =>
{
// 在这里安全地更新UI控件
}, null);
});
想要省事还是用BeginInvoke(Winform)、Dispatcher(WPF)