2010-11-19 6 views
3

多くの場合、高価なタスクを実行して結果を表示する必要があります。だから私はスレッドを立ち上げる。私が現在使っているコードより少ないコードか、これを実行する良い方法はありますか?Monotouch Threading - より良いデザインの質問

例:ここにスレッド--start

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

....

答えて

6

あなたは、スレッドプールを使用して、物事を少し簡略化することができます。

ThreadPool.QueueUserWorkItem(delegate {/ * ... * /});

+1

私もこのようにしています。トリックは決して決して決して決してInvokeOnMainThread()を忘れることはありません。 –

+1

覚えておくべきことは、MonopouchのThreadPool(アプリケーションの最大メモリフットプリントが約46MBになる可能性があるため)で約20スレッドに制限されていることです。 –

4

Kevinが指摘しているように、ThreadPoolの使用は少しシンプルです。

しかし、ThreadPoolを使用すると追加のボーナスがあります。Monoはスピンアップするスレッドの数を制限し、デバイス上の限られたリソースをよりよく保存するのに役立ちます。

+1

Miguel、answer ..and Monotouch !!!私たちはあなたとあなたのチームが構築した堅固なMonotouchフレームワークに45のアプリケーションを出荷し、数千も販売しました。 –

+0

これは私の耳にする音楽です! –