gpt4 book ai didi

.net - .NET 3.5 SendAsync 和 ReceiveAsync 的回调在哪个线程的上下文中执行?

转载 作者:行者123 更新时间:2023-12-01 04:19:55 25 4
gpt4 key购买 nike

SendAsync 和 ReceiveAsync 是否使用 IO 完成端口?

最佳答案

好吧,IO 完成端口的工作方式是将完成例程作为 APC 挂起到 ThreadPool (SocketAsyncEventArgsPool) 中的工作线程。因此,上下文是创建的某个工作线程。

至于你的实际问题,我无法想象他们会使用 I/O 完成端口以外的任何东西,否则效率会非常低;然而,这主要是一个实现细节——不管他们如何做,现实是通知是在一个任意的上下文中(即你不知道你在哪个线程中),所以你需要在一个线程中做事——在您的完成例程中安全地进行。

为了获得良好的可扩展性,我还会尽量减少在此例程中完成的工作,尽可能快地完成 I/O - 如果您必须做其他工作,请使用单独的线程池,您可以将实际计算排入队列。

关于.net - .NET 3.5 SendAsync 和 ReceiveAsync 的回调在哪个线程的上下文中执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2263668/

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