主要問題是:如何在後臺(類似於BackgroundWorker的)幾個線程運行中TestingButton_Click的代碼,所以我將能夠:
1.獲取所有的原始數據的方法
2 。同時取消所有線程的測試
3.報告進度
4.將所有結果表檢索到主線程。在後臺運行並行
下面的代碼是內TestingButton_Click
List<Thread> threads = new List<Thread>();
//Testing for each pair
foreach (InterfaceWithClassName aCompound in Group1)
{
foreach (InterfaceWithClassName bCompound in Group2)
{
InstancePair pair = new InstancePair();
//some code
if (testModeParallel)
{
Thread thr = new Thread(TestPairParallel);
thr.Start(pair);
threads.Add(thr);
}
else
{
Thread thr = new Thread(TestPairSerial);
thr.Start(pair);
threads.Add(thr);
}
}
}
while (true)
{
int i = 0;
foreach (Thread thread in threads)
{
if (thread.IsAlive)
break;
i++;
}
if (i == threads.Count)
break;
Thread.Sleep(1000);
}
pairsResultsDataGrid.ItemsSource = tab.DefaultView
用戶能夠選擇什麼化合物每次我有不同的數字對測試的時間來測試等等。 我對不同的方法TestPairSerial()和TestPairParallel()以防萬一。
TestPairSerial()結構是
do
{
do
{
} while (isSetbCompaundParams);
} while (isSetaCompaundParams);
//filling up results into tables (main window variables) later to be connected to DataGrids
TestPairParallel()與InfinitePartitioner實現並採用類似的結構只能用Parallel.ForEach(新InfinitePartitioner(),...
謝謝您的幫助。
你的問題到底是什麼。你的第一句話沒有意義。提出一個問題。我建議您丟失背景信息,因爲它與您當前的問題無關。 – 2011-12-14 17:09:25
查看[任務](http://msdn.microsoft.com/en-us/library/dd537609.aspx)類 – oleksii 2011-12-14 17:17:12
請選擇一個問題,然後僅發佈與該問題相關的信息。 – Gabe 2011-12-14 17:17:32