我有多个客户端和一个服务器,它们通过 TCP 通信对象更新。
基本上,服务器运行一个访问对象的算法,但这些可能会在通过 TCP 发送更新时发生变化。
我已经设置了标志来检查数据库的更新,并且只有在本地内存或数据库服务器之间的数据存在差异时才发送更新。问题是如果一个对象在迭代时发生了变化。
该算法在后台线程上运行,总结的代码架构如下所示,它是事件驱动的:
算法后台线程:
Private algorithm As New NewAlgorithmTest
Private Sub bg_workerAlgorithm_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles bg_workerAlgorithm.DoWork
algorithm.RunAlgorithm()
End Sub
Private Sub bg_workerAlgorithm_RunWorkerCompleted(sender As System.Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bg_workerAlgorithm.RunWorkerCompleted
bg_workerAlgorithm.RunWorkerAsync()
End Sub
从客户端收到的 Tcp 消息:
Private Sub Client_MessageReceived(sender As Object, e As TcpClient.MessageRecievedEventArgs)
Dim message As String = e.Message
'figure out which object to update based off message and set it as updatedObject
dim updatedObject
updatedObject.GetLatest()
End Sub
我该如何解决这个问题?