2

我正在维护其他人的代码及其使用类UdpClient。代码声明一个实例UdpClient并使用UdpClient.Receive().

当接收到数据时,它会在另一个线程中处理并再次UdpClient调用Receive()。在处理数据的同时,同一个客户端正在发回响应。

问题:这是一个错误吗?我认为是因为UdpClient不是线程安全的,所以你不能同时调用两个方法。无论如何,代码工作正常,但......

4

1 回答 1

3

某些东西不是线程安全的事实并不意味着您不能通过不同的线程调用两种方法(甚至不能通过不同的线程调用一种方法),它只是意味着在设计该类时它不是用线程设计的-牢记安全,因此从您的 POV 来看,并发访问的结果是“不可预测的”。

这不是错误。这是一种误用。

于 2010-04-22T10:23:26.530 回答