Multithreading OPCItemRead SyncItemServerError:-1073479679

Multithreading OPCItemRead SyncItemServerError:-1073479679,multithreading,client,opc,Multithreading,Client,Opc,使用Kepware OPC服务器v4.0(OPCServerCommLib.dll)的通信库,我在尝试断开与OPC服务器的连接时开始收到此错误。有关此错误的信息不知从何处获得,Kepware支持部门无法提供帮助。我认为即使在我执行断开连接操作后,我的程序仍必须尝试读取,但我不明白为什么。下面是我使用线程读取数据的基本方式: Private Sub MonitoringThread() If OPCServerConnected Then PerformOPCReadOperation()

使用Kepware OPC服务器v4.0(OPCServerCommLib.dll)的通信库,我在尝试断开与OPC服务器的连接时开始收到此错误。有关此错误的信息不知从何处获得,Kepware支持部门无法提供帮助。我认为即使在我执行断开连接操作后,我的程序仍必须尝试读取,但我不明白为什么。下面是我使用线程读取数据的基本方式:

Private Sub MonitoringThread()
  If OPCServerConnected Then
  PerformOPCReadOperation()
  End If
System.Threading.Thread.Sleep(100)
End Sub

即使OPCServerConnected在断开连接时被设置为false,该变量也没有及时更新以使tread看到它。我就是这样解决这个问题的。如果有人能找到更好的方法,请随时发布自己的答案

在线程结束之前添加此行: ThreadStopped()

在基类中,添加以下内容:
Public m_AutoResetEvent As AutoResetEvent=新的AutoResetEvent(False)

最后,在需要断开连接的例程中(关闭、退出、重新启动等),在调用OPC服务器断开连接方法之前添加以下行:

m_AutoResetEvent.WaitOne() 
m_AutoResetEvent.WaitOne()