在WPF应用程序中使用多线程的方式与Windows Forms很类似,区别在于,如果需要更新主线程UI上面的元素,需要用一个特殊的方法(this.Dispatcher.Invoke)
下面是一个简单的范例,演示了如何执行一个简单的方法,它使用了callback的机制进行多线程异步执行。
Func<string> func = new Func<string>(() =>
{
Thread.Sleep(5000);
return "Hello,world";
});
AsyncCallback callback = new AsyncCallback((i) =>
{
this.Dispatcher.Invoke(
new Action(() =>
{
this.Title = func.EndInvoke(i);
}));
});
func.BeginInvoke(callback, null);