Multithreading 单触式螺纹-更好的设计问题

Multithreading 单触式螺纹-更好的设计问题,multithreading,xamarin.ios,Multithreading,Xamarin.ios,通常,我需要完成一项昂贵的任务,然后显示结果。因此,我增加了一个线程。有没有比我现在使用的更少的代码,或者更好的方法 例如: ThreadStart job = new ThreadStart (delegate { Search d = new Search (); x = d.DoSomeWork(); InvokeOnMainThread (delegate { ctl.Show (x); }); }); --从这里开始线程…

通常,我需要完成一项昂贵的任务,然后显示结果。因此,我增加了一个线程。有没有比我现在使用的更少的代码,或者更好的方法

例如:

ThreadStart job = new ThreadStart (delegate {
    Search d = new Search ();
    x = d.DoSomeWork();
    InvokeOnMainThread (delegate {
         ctl.Show (x);
          });
});

--从这里开始线程…

您可以使用线程池并稍微简化一些事情


QueueUserWorkItem(委托{/*…*/})

正如Kevin指出的,ThreadPool的使用稍微简单一些


但使用线程池还有一个额外的好处:Mono将限制您启动的线程数量,帮助您更好地保留设备上有限的资源

我也是这样做的。。诀窍是永远不要忘记InvokeOnMainThread()。需要记住的一件事是Monotouch上的线程池(因为你的应用程序的最大内存占用量可能在46mb左右)被限制在20个线程左右,谢谢你的回答..还有Monotouch!!!我们已经发布了45个应用程序,并在您和您的团队构建的坚如磐石的Monotouch框架上销售了数千个应用程序。