热度 3
2012-3-11 21:57
2629 次阅读|
0 个评论
用一个线程不断地从串口中抓取数据,并且将抓取到的数据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();