异步套接字读取问题

时间:2013-06-24 08:30:32

标签: c# .net sockets

我有一个程序使用tcp套接字异步调用来接收8字节的协议头。处理ReadCallBack()[异步回调]时,它使用同步读取来获取有效负载消息,然后处理它。

我的问题是ReadCallback方法是否是线程安全的。我使用普通字典来处理这些有效负载。是否会影响该词典?

1 个答案:

答案 0 :(得分:1)

如果它是孤立的,那么一切都是有效的线程安全的;重要的问题是: else 正在发生什么?什么 else 正在访问(读取或写入)字典?如果没有,那么你应该没问题 - 将调用回调(这取决于所使用的特定API,缓冲区中可用的数据,可能 在发布{{1}的线程上在完成端口线程上的,,然后你可能会在做其他事情之前先做一些字典工作(读/写/关闭)。

但是,如果其他线程正在访问字典,那么没有特定代码就无法回答这个问题。