我要实现下面的功能:运行一个程序——出现主界面,后台自动去读串口数据(当然串口可能没有数据,然后等待,不停的读),现在自动读写串口没有问题,不知道怎么把这个后台程序跟主界面联系起来,请高手指点一下。
由于读串口的操作是不停进行的,只要主窗体不销毁就一直读,这里我用while(条件),但是不知道这个条件该怎么判断。
我尝试了在主窗体load事件中调用写好的读写串口程序——结果主窗体都出不来了。
由于读串口的操作是不停进行的,只要主窗体不销毁就一直读,这里我用while(条件),但是不知道这个条件该怎么判断。
我尝试了在主窗体load事件中调用写好的读写串口程序——结果主窗体都出不来了。
在界面线程中执行一个循环,你这个循环不停止,界面就不会被绘出来,所以你要在界面上另开一个线程来执行这个读串口的操作。
Form_load
{
Thread thread=new Thread(读串口的函数);
thread.start();
}
条件你可以直接用true。
因为这个线程是在主窗体上生成的,主窗体关闭,这个线程就自动销毁。
起一个线程来读数据,这样界面就不会被假死,
然后在线程中刷新显示,
在窗口的Close 事件中结束此线程就好了
private void meter_FormClosed(object sender, FormClosedEventArgs e)
{
Thread_RW_sp.Abort();
}
thread.IsBackground = true; //就是这个属性
thread.start();