2010-03-11 40 views
3

我的应用程序中设置了双向通信(PipeDirection.InOut)的NamedPipeClientStream实例。我也有两个线程,一个读线程和一个写线程。并发读写NamePipeClientStream

我想读取线程只调用NamedPipeClientStream.Read方法,写入线程只调用NamedPipeClientStream.Write方法。他们永远不会调用其他方法,但他们可能会同时调用管道实例。

我查阅了NamedPipeClientStream的文档,它说公共静态方法是线程安全的,但实例方法不保证是线程安全的。

我的问题是安全的,我有两个线程同时调用管道实例上的两个不同的方法(读和写),或者这是我不应该做的事情?而且,实例方法线程安全性是否仅适用于调用相同方法的单独线程,而不是单独调用像Read和Write等单独方法的线程?

谢谢!

回答

4

是的,没问题。 PipeStream.Read和Write直接调用本地Windows API,ReadFile和WriteFile都是线程安全的。

+0

非常好,这是我需要知道的。谢谢! – Chris 2010-03-12 06:15:20