ntdll.dll是什么?总导致程序停止响应
vb.net吧
全部回复
仅看楼主
level 1
蓝梦妖蝶 楼主
程序在我电脑上一直运行的好好的。换到另一个电脑,就开始狂卡死。
DSOS054A TESTROOL.exe
1.0.0.0
5be544e4
ntdll.dll
10.0.16299.665
a06372a8
c0000374
000da2a9
8d0
01d4780a4d9d2725
D:\DSOS054A\DSOS054A TESTROOL.exe
C:\Windows\SYSTEM32\ntdll.dll
f5e01306-2317-4afa-ab85-32a1ee71253d
Private Sub VI_BtnCon_Click(sender As Object, e As EventArgs) Handles VI_BtnCon.Click
Dim viaddress As String = VI_txtDRS.Text
status = viOpenDefaultRM(defrm) '打开资源管理器
System.Threading.Thread.Sleep(10)
status = viOpen(defrm, viaddress, 0, 0, vi) '打开仪器VI
If status <> VI_SUCCESS Then
VisaErrorHandler()
Exit Sub
End If
status = viVPrintf(vi, "*IDN?" + vbCrLf, 0) '请求设备ID
System.Threading.Thread.Sleep(10)
status = viVScanf(vi, "%t", strRes) '返回设备ID
VI_txtIDN.Text = strRes '显示
End Sub
点击以上代码后,然后再点击其他按钮,卡死的概率极大。基本80%。
2018年11月09日 09点11分 1
level 11
用多线程或者task来改写吧,为啥要sheep呢
2018年11月09日 19点11分 2
谢谢,用的延时,保证仪器可以正常打开,sleep用了很多地方呢,难道用的不对?
2018年11月12日 02点11分
level 1
蓝梦妖蝶 楼主
每一步都加个msgbox,居然就通过了。没有死掉。为什么呢?
Dim viaddress As String = VI_txtDRS.Text
MsgBox("1")
status = viOpenDefaultRM(defrm) '打开资源管理器
MsgBox("2")
status = viOpen(defrm, viaddress, 0, 0, vi) '打开仪器VI
System.Threading.Thread.Sleep(10)
MsgBox("3")
If status <> VI_SUCCESS Then
VisaErrorHandler()
Exit Sub
End If
MsgBox("4")
status = viVPrintf(vi, "*IDN?" + vbCrLf, 0) '请求设备ID
System.Threading.Thread.Sleep(10)
MsgBox("5")
status = viVScanf(vi, "%t", strRes) '返回设备ID
MsgBox("6")
VI_txtIDN.Text = strRes '显示
MsgBox("7")
2018年11月12日 03点11分 4
level 1
蓝梦妖蝶 楼主
可能还是UI反应慢的原因,text转换的时候加个延时会好很多。卡死的次数比以前少了。
2018年11月12日 03点11分 5
level 11
sleep
2018年11月12日 05点11分 6
1