質問するログイン新規登録

回答編集履歴

1

誤字修正

2020/02/13 08:44

投稿

dodox86
dodox86

スコア9425

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  例えばファイルの変更を監視するようなことで目的を達せられるのであれば、Windows APIでは`FindFirstChangeNotification`、.NET では`System.IO.FileSystemWatcher`が使えます。ファイル経由でデータをゆっくり(いや、人間が感じるに充分速いと思いますけど)やり取りするのであれば、比較的簡単にイベント送受とすることができるでしょう。ただ、タイミングによって変更通知漏れのようなことも起きることがあるので、厳密性を求められるのであれば少し注意した方が良いかもしれません。
2
2
 
3
- もう少し一貫性をもってイベント監視を行いたいのであれば、ミューテックス(Mutex)オブジェクトが使えると思います。相互に同じ名前のミューテックスを監視して、変更を起こした方が`SetEvent`相当のAPIを実行してイベント発火すれば、している方に通知されます。
3
+ もう少し一貫性をもってイベント監視を行いたいのであれば、ミューテックス(Mutex)オブジェクトが使えると思います。相互に同じ名前のミューテックスを監視して、変更を起こした方が`SetEvent`相当のAPIを実行してイベント発火すれば、監視している方に通知されます。
4
4
 
5
5
  あとは実際にプロセス間で通信経路を確保する名前付きパイプ(NamedPipe)などもありますが、どちらかがサーバー側にならなければならないので、少し面倒でしょう。TCPやUDPは、ポート番号に少し気を付ける必要がありますし、UDPのようにデータグラム的な送受で良ければ、WindowsのネイティブAPIで使える「メールスロット」もあります。データをやり取りする必要が無いのであれば、過剰スペックかもしれません。