.NET 4.x Ожидание выполнения Thread 64+ - C#
Формулировка задачи:
Код рабочий, все ок. Но больше 64 потока WaitHandle не поддерживает, как ожидать выполнение 100, 200 или даже большего числа потоков?
private void button1_Click(object sender, EventArgs e) { WaitHandle[] handles = new WaitHandle[100]; for (int i = 0; i < 100; i++) { handles[i] = new ManualResetEvent(false); new Thread(One).Start(handles[i]); } WaitHandle.WaitAll(handles); MessageBox.Show($"Ура, выполнили!!!"); } private void One(object handle) { Thread.Sleep(new Random().Next(1000,5000)); // сообщаем что поток завершился ((ManualResetEvent)handle).Set(); }
Решение задачи: «.NET 4.x Ожидание выполнения Thread 64+»
textual
Листинг программы
private void button1_Click(object sender, EventArgs e) { var threads = new Thread[100]; for (int i = 0; i < 100; i++) { threads[i] = new Thread(One); threads[i].Start(); } for (int i = 0; i < 100; i++) { threads[i].Join(); } MessageBox.Show("Ура, выполнили!!!"); } private void One() { Thread.Sleep(new Random().Next(1000,5000)); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д