Главный вопрос: Как запустить код в TestingButton_Click на несколько потоков в фоновом режиме (по аналогии с BackgroundWorker), так что я буду иметь возможность:
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(), ...
Спасибо за вашу помощь
В чем именно заключается ваш вопрос. Ваше первое предложение не имеет смысла. Придумайте один вопрос. Я предлагаю вам потерять справочную информацию, поскольку она не имеет никакого отношения к вашей текущей проблеме. –
Взгляните на класс [Задача] (http://msdn.microsoft.com/en-us/library/dd537609.aspx) – oleksii
Пожалуйста, выберите один вопрос, который нужно задать, и опубликуйте только информацию, относящуюся к этому вопросу. – Gabe