【发布时间】:2011-10-12 18:31:11
【问题描述】:
我正在将一个进程的输出重定向到我稍后阅读的流式阅读器中。我的问题是我正在使用多个线程,这些线程应该有这个流的单独实例。当我去读这个流时,线程软糖并开始奇怪地执行。
是否有制作线程安全流之类的东西?
编辑:我在流读取器上的 ReadToEnd 上加了锁,我在其中做的那一行:reader = proc.标准输出;
【问题讨论】:
-
“线程软糖并开始奇怪地执行”是什么意思?
-
您可以使用锁实现自己的线程安全读/写操作。它简单易行。
-
Fugging:开始连续执行,有时会错过解释数据。
-
可以,我会做lock(process.StandardOutput){}来锁定写作吗?
-
基于原始问号的答案是正确的。如果还有其他减轻情节的情况,您可能会注意到它们。
标签: c# multithreading stream thread-safety