私は、ユーザーがSilverlightアプリケーションを使用して実行できる計算集約型のタスクを持っています。パラレル化するのは非常に簡単な作業です。Silverlight:ProcessorCountを入手するには?
私の問題は、System.Environment.ProcessorCountがセキュリティクリティカルであるため、簡単に確認できないということです。
私はQueueUserWorkItemだけにしたくありません。なぜなら、実行しているプロセッサの数より多くのものを持ちたくないからです。それは役に立たないでしょう。
つの回避策は、ここに記述されている:http://www.codeproject.com/KB/silverlight/multicore.aspx
しかし、それは少しハックだし、それが仕事のビットが4つのまたは8スレッド・システムのため、それが合理的に確実なものにすることでしょう。
これを解決する「正しい」方法は何ですか?それとも、Silverlightはあなたをここから去らせてくれるのですか?
4つのコアで動作するように単純にコーディングすることになりますか?私の経験では、単一のコアシステムのオーバーヘッドはそれほど悪くありません。 – Chris
私はそれをベンチマークし、それがどれだけ傷つくかを見てみるつもりです。各タスクには1または2MBのデータがあるため、スレッドをさらに実行すると、オーバーヘッドの切り替えに加えてキャッシュに関する問題が発生すると思います。 – MichaelGG