【发布时间】:2018-05-09 03:36:04
【问题描述】:
我有一个 IO.Stream,我需要先写入然后再从中读取。由于响应直接与发送的数据相关联,因此我需要防止此方法并行执行,以保证其完整性。现在,我也希望这种方法可以等待,这可能吗?我将流包装成一个同步的流,这样可以防止读写过程中的干扰,但不能保证保持正确的读写操作顺序。我对如何实现这一点有点迷茫,因为如果我想使用异步等待方法,我无法锁定流。
【问题讨论】:
-
TPL DataFlow 听起来可能适合你
-
仅供参考:您不应该担心哪些线程同时调用相同的方法:您应该担心哪些线程访问相同的数据。可能有不同的线程执行不同的方法,但仍然存在问题,因为两种方法都访问相同的数据。其他时候,你可以在同一个方法中同时有不同的线程,但不会有问题,因为它们是使用该方法对不同的数据进行操作。
标签: c# multithreading asynchronous locking