我正在使用类UdpClient
来维护其他代码。该代码声明了UdpClient
的一个实例,并使用UdpClient.Receive()
连续接收数据。
收到数据后,会在另一个帖子中处理,然后UdpClient
再次调用Receive()
。在处理数据的同时,同一客户端正在发回响应。
问题:这是一个错误吗?我是这么认为的,因为UdpClient
不是线程安全的,所以你不能同时调用两个方法。无论如何代码工作正常,但......
答案 0 :(得分:2)
某些东西不是线程安全的事实并不意味着你不能通过不同的线程调用两个方法(甚至通过不同的线程调用一个方法),它只是意味着当类被设计时它不是在设计时考虑了线程安全性,因此并发访问的结果从您的POV“不可预测”。
这不是错误。这是一种误用。