sockets - 是 Socket.BeginReceive(IList<ArraySegment<byte>> 缓冲区.. 不是异步的吗?

标签 sockets asynchronous ilist buffering beginreceive

我一直在寻找实现一个自定义类:

IList<ArraySegment<byte>>

这将被传递给一个套接字,并用作从该套接字接收数据的缓冲区。
Socket.BeginReceive(
    IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object
    )

MSDN Documentation

在测试时我发现打电话时

开始接收(IList..

挡住了?!当用 BeginReceive(byte[]... 替换它时,它是异步操作的。

有没有其他人遇到过这个?

如果需要,我会发布我的测试代码,但在我丑化这个问题之前,我想听听任何人的意见:)

谢谢!

最佳答案

所以!我发现了这个问题。

正如我有一个

Console.WriteLine

出现在我的习惯中
IList<ArraySegment<byte>>

那么该方法在编译时没有异步执行:)

关于sockets - 是 Socket.BeginReceive(IList<ArraySegment<byte>> 缓冲区.. 不是异步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1092294/

相关文章:

android - robospice 如何管理 Activity 生命周期?

database - ElasticSearch 异步发布

c# - 为什么数组支持IList?

Python:在列表中存储和删除线程

sockets - Racket:TCP 套接字上的设置选项

C/C++ Posix BSD 套接字 - HTTP 请求始终返回状态 400

.net - Control.EndInvoke 为异常重置调用堆栈

c# - 为什么返回 String.Length 而不是 DataSource 中的实际值

c# - 为什么 IList<T> 没有采用 IEnumerable<T> 的 Insert 方法?

python - HTTP请求内容为空