我需要做的是這樣的測試()僅僅是計算,我只想把所有的CPU核心在工作中找到解決方案更快。如何實現多線程池一個重複的過程
for (int i= 0; i<1000000; i++)
{
result[i] = Test(i);
if (result[i] == 0)
{
break;
}
}
我以前使用過BackgroundWorker。並且可以創建一個N bgWorker數組並自己處理隊列,但看起來太麻煩了。
所以我發現Task.Factory,似乎類似於我想要的東西,但還是不知道如何處理每一個單獨的任務等待結果,發現asnwer時停止一切。
Task<string> task = Task.Factory.StartNew<string>
(() => DownloadString("http://www.google.com/"));
string result = task.Result;
或者也許有我的問題的其他解決方案。
所以,你想有多個線程照此計算,並停止當其中一個得到答案你期待? – zimdanen
你想['Parallel.For'(https://msdn.microsoft.com/en-us/library/dd460713(V = vs.110)的.aspx) – cubrr
@zimdanen以及我希望每個線程處理相同的功能'測試(i)',當他們完成時選擇下一個可用的'i',直到找到答案。 –