一个常见的任务是在后台线程中做一些事情,然后在完成后将结果传递给 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 应用程序时是否有推荐的方法?
最佳答案
虽然我更喜欢 Task Parallel Library 的语法ThreadPool
代码库较旧(在 Mono 和 MonoTouch 中),因此您更有可能找到它的文档并且不太可能点击 bug .
关于c# - MonoTouch - 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8088502/