c# - 并发读写 NamePipeClientStream

标签 c# .net multithreading concurrency named-pipes

我的应用程序中有一个 NamedPipeClientStream 实例,它设置为双工通信 (PipeDirection.InOut)。我还有两个线程,一个读线程和一个写线程。

我想让读线程只调用 NamedPipeClientStream.Read 方法,写线程只调用 NamedPipeClientStream.Write 方法。它们永远不会调用彼此的方法,但它们可能会同时调用管道实例。

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

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

谢谢!

最佳答案

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

关于c# - 并发读写 NamePipeClientStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2429404/

相关文章:

c# - 领域驱动设计 : access a configured value from an Entity without using a Service Locator

c# - 我的应用程序退出后继续在进程中运行

c# - 无法将字符串类型隐式转换为 serilog.formatting.ITextformatter

c# - 获取 NotifyIcon 的所有者表单?

c++ - 当应用程序在没有适当的 wait() 调用的情况下关闭时 QThread 会发生什么?

c# - 我收到错误 'EntityType has no key defined',即使我在模型和数据库中都定义了一个键

.net - 对于这个简单的数学结果,我应该使用小数、 float 还是 double ?

c++ - 了解低级鼠标和键盘钩子(Hook)(win32)

java - 线程内的代码比线程外的慢..?

c# - 相互 SSL 身份验证 - sslstream 中的本地证书返回 'null' 而不是客户端上的证书