【发布时间】:2011-12-26 16:09:28
【问题描述】:
一个常见的任务是在后台线程中做某事,然后在完成后将结果传递给 UI 线程并通知用户。
我理解有两种常见的方式:
我可以使用 TPL:
var context = TaskScheduler.FromCurrentSynchronizationContext ();
Task.Factory.StartNew (() => {
DoSomeExpensiveTask();
return "Hi Mom";
}).ContinueWith (t => {
DoSomethingInUI(t.Result);
}, context);
或者旧的线程池:
ThreadPool.QueueUserWorkItem ((e) => {
DoSomeExpensiveTask();
this.InvokeOnMainThread (() => {
DoSomethingInUI(...);
});
});
在使用 MonoTouch 构建 iOS 应用程序时有推荐的方法吗?
【问题讨论】:
标签: c# ios xamarin.ios threadpool task-parallel-library