あるスレッドがリンクリストに書き込み、別のスレッドがリンクリストを処理することで、処理を高速化しようとしています。
何らかの理由で、リンクリストに書き込むメソッドをタスクにし、リンクリストから優先度の低いスレッドを読み取るメソッドを使用すると、プログラムは全体としてはるかに高速に終了します。言い換えれば、私は次のことを行うときに最速の結果を経験します。
Task.Factory.StartNew( AddItems );
new Thread( startProcessingItems ) { Priority = ThreadPriority.Lowest }.Start();
while(completed==false)
Thread.Sleep(0);
おそらく、最初のタスクが他のスレッドよりも多くの余分な作業を行っているため、2番目のメソッドの優先度を低く設定すると、全体としてすべてがより速く終了します。
とにかく今私の質問はstartProcessingItems
ThreadPriority=Lowestでの実行です。優先度を最高に変更するにはどうすればよいですか?そのメソッドで新しいタスクを作成した場合、そのタスクは低い優先度で実行されますか?基本的に、startProcessingItemsはリストで終わります。リストができたら、最高の優先度で実行を開始します。