【问题标题】:Concurrent reading and writing to NamePipeClientStreamNamePipeClientStream 的并发读写
【发布时间】:2010-03-11 23:24:59
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

    标签: c# .net multithreading concurrency named-pipes


    【解决方案1】:

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

    【讨论】:

    • 太好了,这是我需要知道的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多