在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);