用线程启动检测串口(多个)
之后点击按钮结束串口读写
public bool shouldStop ;
Thread com = new Thread(new ThreadStart(read));
com.IsBackground = true;
if(btnXX.Text=="xxx")
{shouldStop=false;
comRW.Start();
}
else if(btnXX.Text=="yyy")
{
while (!comRW.IsAlive)
{
Thread.Sleep(100);
shouldStop = true;
com.Join();
}
}
private void readMessage()
{
while(!shouldStop)
{
//要执行的内容
}
}
问题是在点击停止后,在语句com.Join();处异常信息,线程尚未启动?
什么原因?
之后点击按钮结束串口读写
public bool shouldStop ;
Thread com = new Thread(new ThreadStart(read));
com.IsBackground = true;
if(btnXX.Text=="xxx")
{shouldStop=false;
comRW.Start();
}
else if(btnXX.Text=="yyy")
{
while (!comRW.IsAlive)
{
Thread.Sleep(100);
shouldStop = true;
com.Join();
}
}
private void readMessage()
{
while(!shouldStop)
{
//要执行的内容
}
}
问题是在点击停止后,在语句com.Join();处异常信息,线程尚未启动?
什么原因?
断点后没问题
初步怀疑是程序执行到join语句的时候
线程执行结束。
不过不会每次都这么巧吧