gpt4 book ai didi

c# - 来自 MSDN 的异步客户端套接字示例

转载 作者:行者123 更新时间:2023-11-30 16:25:08 25 4
gpt4 key购买 nike

我对这个例子有疑问:Asynchronous Client Socket .它说操作是异步的,它们(提供了beginxxx/endxxx),但它们使用ManualResetEvent,如果我正确理解示例代码 - 这样的调用:

  Receive(client);
receiveDone.WaitOne();

会阻塞线程,它们被调用。因此,如果我有一个带有 UI 的应用程序并且我从主线程调用该异步套接字代码 - 应用程序将卡住......或者我错了吗?抱歉,我希望在不卡住主线程的情况下通过 tcp 异步发送/接收一些命令。我是否必须调用该示例中的所有套接字操作以避免卡住?

最佳答案

是的,此代码已设置为同步运行。但是,您可以轻松地自己使用 Beginxxx 和 Endxxx 调用,而不是像编写异步操作的这个(糟糕的)示例那样包装它们。

为进一步说明,本文确实异步运行每个方法,但随后使用 blocker.WaitOne(); 进行阻塞这将有它的回调触发接收等

您还可以使用 TPL并利用他们的 ContinueWith功能来做到这一点。那么你的代码甚至可能看起来更干净:)

关于c# - 来自 MSDN 的异步客户端套接字示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10230349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com