用一个线程不断地从串口中抓取数据,并且将抓取到的数据invoke 到 textbox中,退出系统时调用 if(thread.isAlive) thread.Abort(); 也弹出了“正在终止线程” 对话框, 尝试了多次,对线程进行了稍微的改动.采用了下面的办法:
1.定义一个读取标志:
private bool readCardSign = true;
public bool ReadCardSign
{
get { return readCardSign; }
set { readCardSign = value; }
}
2.抓取数据线程:
private void ReadCardFun()
{
while (true)
{
if (ReadCardSign) //获取读取标志
{
//获取串口中的数据
//获取成功则将数据 invoke 到 textbox中
Thread.Sleep(300);
}
else
{
break; //如果读取标志为 false 则中断线程
}
}
}
3. 退出系统时调用:
if (tdReadCard.IsAlive)
{
ReadCardSign = false;
}
this.Close();
文章评论(0条评论)
登录后参与讨论