Нет полного завершения потока - 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();