一些基于.NET的XX系统设计与实现都是硕士毕业论文或者学术文献
西安石油人学硕士学位论文
在辅线程被引发,当收到完整的一条数据,返回主线程处理或在窗体上显示时,请注意跨线程的处理,C拌可采用控件异步委托的方法Contr01.Beginlnvoke及同步委托的方法Invoke。其中初始化串口的流程如图3.5所示。
图3—5初始化串口流程图
在.NET2.0中,线程的处理主要有两种方式,一种是使用Thread类,如下:
Threadtd=newThread(fuc)//fuc为采集线程的方法,这实例了一个td线程
但是这种低级别的线程,不能控制窗口控件,需要另一种安全线程才能操作窗口控件。以下例子为通过子线程向窗口的文本框写入字符串:
delegatevoidSetTextCallback(stringtext);//定义一个委托
//定义一个新的线程publicThreaddemoThread=null;
this.demoThread=newThread(newThreadStart(this.ThreadProcSafe));
this.demoThread.Start();
privatevoid//实例化一个线程,并开启它//将字符串安全的传递ThreadProcSafe0{
this.SetText(”开始”);'
privatevoidSetText(stringtext){//判断是否有相同的线程访问同一控件
if(this.txtMsgStatus.InvokeRequired){//委托的异步调用
SetTextCallbackd2newSetTextCallback(SetText);
this.Invoke(d,newobject[】{text));)
else{
this.TextBox.Text+2text;}}
在.NET2.0中有一个新增的类BackgroudWorker,同样的功能也可以用异步委托的形