.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));
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д