5

名前付きパイプを監視するにはどうすればよいですか? FileSystemWatcherモニターできません\\\\.\pipes。名前付きパイプに使用できる FSW に似たものはありますか? 現在、新しい名前付きパイプの作成をポーリングしていますが、それは少し効果がないようです。

関心のあるパイプの作成を監視したい。名前付きパイプのリストは、パイプが既に作成されている場合に適しています。プログラムのいくつかのインスタンスがポップアップし、ポップアップするたびに、ポーリングせずに名前付きパイプを使用して自動的に接続できるようにしたいと考えています。そのようなメカニズムは利用できないようです。

4

1 に答える 1

2

名前付きパイプ自体を監視することはできませんが、他のことを待つことはできます。これに対する私の解決策は、イベントを作成してからそれを待つことです。サーバー プログラムがパイプを作成すると、イベントも通知されます。クライアントがシグナルを受け取ったら、イベントを閉じてパイプを開きます。

パイプが閉じられたことを示すメッセージが表示され、再度監視する必要がある場合は、イベントを再度開いて待機します。

複数のパイプがある場合は、パイプごとに個別のイベントが必要になる場合があります ( EventForPipe-*pipename*)。または、すべてのパイプに使用される 1 つのイベントが必要な場合があり、イベントが通知されたときに各パイプをチェックするだけです。

これはローカル パイプでは機能しますが、リモート イベントを通知または待機する方法がないため、リモート パイプでは機能しません。別のコンピューターでパイプを監視する必要がある場合は、パイプを使用するコンピューターに、シグナリングに使用できる共有ディレクトリを含めることもできます。共有ディレクトリはファイルの変更を監視できるため、パイプの作成時にファイルを作成できます。リモート サーバーはすべてのリモート ファイル通知要求を受け入れることができない可能性があるため、この戦略が機能するには定期的に (おそらく 1 分に 1 回) ポーリングする必要があることに注意してください。

于 2013-01-19T01:16:26.210 に答える