Нет полного завершения потока - C#
Формулировка задачи:
Возникла проблема, в одном из потоков на первой форме запускается функция, которая открывает и закрывает DVD привод раз в 3 секунды:
Далее происходить прерывание вышеуказанного потока по таймеру:
Проблема в том, что при запуске уже в новом потоке на второй форме:
ничего не происходит, т.е DVD привод не открывается, хотя сам поток запускается. В чем проблема не пойму. Может "while" не завершается. Если запускать приложение сразу со 2 формы, то всё работает.
private void Process2() { while (true) { mciSendString("open G: type CDAudio alias driveG", null, 0, IntPtr.Zero); mciSendString("set driveG door open", null, 0, IntPtr.Zero); System.Threading.Thread.Sleep(3000); mciSendString("closed G: type CDAudio alias driveG", null, 0, IntPtr.Zero); mciSendString("set driveG door closed", null, 0, IntPtr.Zero); } }
private void timerTick(object sender, EventArgs e) { Process1.Abort(); }
private void Process4() { while (true) { mciSendString("open G: type CDAudio alias driveG", null, 0, IntPtr.Zero); mciSendString("set driveG door open", null, 0, IntPtr.Zero); System.Threading.Thread.Sleep(3000); mciSendString("closed G: type CDAudio alias driveG", null, 0, IntPtr.Zero); mciSendString("set driveG door closed", null, 0, IntPtr.Zero); } }
Решение задачи: «Нет полного завершения потока»
textual
Листинг программы
Process1.Abort(); Process1.Join();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д