c# - MonoTouch - 线程

标签 c# ios xamarin.ios threadpool task-parallel-library

一个常见的任务是在后台线程中做一些事情,然后在完成后将结果传递给 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/

相关文章:

c# - 使用 LINQ 合并集合,同时覆盖具有相同 ID 的行

ios - 在 Xamarin 中按下按钮后关闭键盘

iphone - 通过添加图像使用 MonoTouch 自定义导航栏

c# - WPF:如何更改 TransitioningContentControl 背景颜色?

c# - 与 .net 中的 Web 服务共享接口(interface)

c# - 如何创建一个包含每个单词(通配符)的短语列表?

ios - 如何在 iOS 上将日期格式从字符串更改为 dd/mm/yy?

ios - 使用搜索栏在结果的 UITableView 上显示原始 UITableView

ios - 如何克隆 UIImageView

ios - MvvmCross ViewModel 从左边过渡