有一个关于 C#/.NET 中事件排序的快速问题。
假设您有一个读取套接字接口 (TCP) 的 while 循环。接口肯定负责排序(它是 TCP)。假设您的数据包接口是这样编写的,以便您在流中获得的每个“数据包”,您将通过事件回调将其转发到下一个“层”或下一个对象。
所以这里是伪代码:
while (1) {
readsocket();
if (data received = complete packet)
raiseEvent(packet);
}
我的问题是:
- 事件是否按顺序生成?(即保留排序)
- 我假设 #1 是正确的,这意味着它将阻塞 while 循环,直到事件完成处理?