我知道从另一个线程更新UI线程的技术。使用任务vs调度程序进行UI线程操作
所以我有这两个方法/技术,我应该使用哪一个?
使用任务:
var uiTask = Task.Factory.StartNew(() => {
// change something on ui thread
var action = theActionOnUiThread;
if (action != null) {
action();
}
}, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.FromCurrentSynchronizationContext());
使用Dispatcher:
Dispatcher.CurrentDispatcher.BeginInvoke(
new Action(() => {
// change something on ui thread
var action = theActionOnUiThread;
if (action != null) {
action();
}
}));
如果这是一个WPF应用程序,那么没有“更好”,选择一个你喜欢的。 –
您是否想等待操作完成?你想如何处理异常? – svick
@svick我不想等待这个操作,并在'action'操作中处理异常。 – punker76