情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

C#で名前付きパイプを使用する

最近知ったのですが、.NET Framework3.5でSystem.IO.Pipes名前空間に名前付きパイプが追加されていたようです。

簡単な使い方をテストしてみました。

尚、ここではスレッド間通信のために使っていますが、実際はプロセス間通信のために使うことが多いでしょう。

Thread serverThread = new Thread(() =>
{
    using (NamedPipeServerStream namedPipeServerStream = new NamedPipeServerStream("test"))
    {
        namedPipeServerStream.WaitForConnection();

        using (StreamReader streamReader = new StreamReader(namedPipeServerStream))
        using (StreamWriter streamWriter = new StreamWriter(namedPipeServerStream))
        {
            streamWriter.AutoFlush = true;

            Console.WriteLine(streamReader.ReadLine());

            streamWriter.WriteLine("test2");
        }
    }
});
serverThread.Start();

Thread.Sleep(1000);

using (NamedPipeClientStream namedPipeClientStream = new NamedPipeClientStream("test"))
{
    namedPipeClientStream.Connect();

    using (StreamReader streamReader = new StreamReader(namedPipeClientStream))
    using (StreamWriter streamWriter = new StreamWriter(namedPipeClientStream))
    {
        streamWriter.AutoFlush = true;

        streamWriter.WriteLine("test");

        Console.WriteLine(streamReader.ReadLine());
    }
}
pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-C#