我正在维护其他人的代码,并使用类UdpClient。该代码声明UdpClient的一个实例,并使用UdpClient.Receive()连续接收数据。
当接收到数据时,它在另一个线程中处理,并且UdpClient再次调用Receive()。在处理数据的同时,相同的客户端会发回一个响应。
问:这是一个bug吗?我想是的,因为UdpClient不是线程安全的,所以你不能同时调用两个方法。无论如何,代码运行良好,但是...
发布于 2010-04-22 18:23:27
有些东西不是线程安全的,这并不意味着你不能通过不同的线程调用两个方法(甚至不能通过不同的线程调用一个方法),它只是意味着当设计这个类时,它并没有考虑到线程安全,因此从你的POV来看,并发访问的结果是“不可预测的”。
这不是一个bug。这是一个误用。
https://stackoverflow.com/questions/2689919
复制相似问题