gpt4 book ai didi

.NET:是否可以在上一个 EndAccept() 完成之前调用 BeginAccept()?

转载 作者:行者123 更新时间:2023-12-04 01:09:16 26 4
gpt4 key购买 nike

下面的序列是合法的还是应该只在 EndAccept 返回后调用下一个 BeginAccept()?

listener.BeginAccept(AcceptCallback, null);

private void AcceptCallback(IAsyncResult ar)
{
listener.BeginAccept(AcceptCallback, null); //Is this ok ? Or should happen only after next line?
socket = listener.EndAccept(ar);

}

最佳答案

我相信它是安全的,基于 Socket class 文档的两个部分:

If you perform multiple asynchronous operations on a socket, they do not necessarily complete in the order in which they are started.

Instances of this class are thread safe.

也就是说,第一条评论没有列出任何关于 哪些 异步操作可以同时拥有多个异步操作的警告。第二条评论比 .NET 框架中类的通常线程保证要强得多。

关于.NET:是否可以在上一个 EndAccept() 完成之前调用 BeginAccept()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19534419/

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