【问题标题】:UdpClient receiving and sending at the same timeudpClient同时接收和发送
【发布时间】:2010-04-22 10:18:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: .net multithreading udpclient


    【解决方案1】:

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

    这不是错误。这是误用。

    【讨论】:

    • 所以这意味着也许一切都靠运气,或者也许一切正常,因为 Receive 和 Send 方法不会相互干扰,对吗?
    • 好的,我要解决这个误用。我不想依靠上帝。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 2013-01-28
    • 2017-06-25
    相关资源
    最近更新 更多