MessageBox关闭的问题
我设计的程序在运行时会弹出一个消息框,用来提示用户检查硬件连接,当用户点击确认后程序会建立与硬件的通讯,并从硬件读取数据。感觉上只要点击了消息框的确定按钮后,消息框应该马上关闭,然后执行后面的程序即建立与硬件的通讯并读取数据,但是现在的情况是点击了消息框的确定按钮后,消息框并不马上关闭而是整个窗口都停顿的样子,直到程序从硬件中读取了数据后消息窗才关闭。strMessageBoxContent = “请检查接口J1的接线”
If MessageBox.Show(strMessageBoxContent, "操作", MessageBoxButtons.OKCancel, MessageBoxIcon.Information,MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.Cancel Then
Exit Sub '如果选择Cancel则退出程序
End If
Select Case intTestType '根据用户的选择获取数据
Case 0
'启动FLEX(i / O)
myDNETrelayControl.OpenFlexIOP(intDMMP)
myDNETrelayControl.OpenFlexION(intDMMN)
TimeDelay() '延时
'获取数据
doubleTestResult = myDMM.ResMeasure
TimeDelay() '延时
'关闭FLEX(i / O)
myDNETrelayControl.CloseFlexIOP(intDMMP)
myDNETrelayControl.CloseFlexION(intDMMN)
Case 1
'启动FLEX I/O
myDNETrelayControl.OpenFlexIOP(intDMMP)
myDNETrelayControl.OpenFlexION(intDMMN)
TimeDelay() '延时
'测试是否关断,获取数据
doubleTestResult = myDMM.ResMeasure
TimeDelay() '延时
'关闭FLEX(i / O)
myDNETrelayControl.CloseFlexIOP(intDMMP)
myDNETrelayControl.CloseFlexION(intDMMN)
End Select --------------------编程问答-------------------- 是不是读取数据是阻塞模式,程序假死在那了 --------------------编程问答-------------------- 在
Select Case intTestType '根据用户的选择获取数据
这句前加上
Application.DoEvents()
试试
--------------------编程问答-------------------- 而且,对于这种消耗大量内存时间或者CPU的操作,即容易导致卡死的代码,应当使用多线程进行处理,即建立一个线程来处理数据。然后回报处理结果给主线程(窗体线程)。
补充:.NET技术 , VB.NET