.net UDP客户端同时接收和发送

.net UDP客户端同时接收和发送,.net,multithreading,udpclient,.net,Multithreading,Udpclient,我正在使用类UdpClient维护其他人的代码和代码。代码声明一个UdpClient实例,并使用UdpClient.Receive()连续接收数据 当接收到数据时,它将在另一个线程中处理,UdpClient再次调用Receive()。在处理数据的同时,同一客户机正在发回响应 问题:这是一个bug吗?我这样认为是因为UdpClient不是线程安全的,所以不能同时调用两个方法。无论如何,代码工作正常,但是…有些东西不是线程安全的,这并不意味着你不能通过不同的线程调用两个方法(或者通过不同的线程调用一

我正在使用类
UdpClient
维护其他人的代码和代码。代码声明一个
UdpClient
实例,并使用
UdpClient.Receive()
连续接收数据

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


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

有些东西不是线程安全的,这并不意味着你不能通过不同的线程调用两个方法(或者通过不同的线程调用一个方法),这只是意味着当设计类时,它并没有考虑线程安全,因此并发访问的结果是“不可预测的”从你的视角


这不是一个bug。这是一个误用。

这意味着可能一切都是靠运气工作的,或者可能一切都是因为接收和发送方法不会相互干扰,对吗?好的,我将修复这个误用。我不想依赖上帝。谢谢:)