[2506] Re: 複数起動時の処理について

投稿日 2019/10/03(Thu) 01:07:25
投稿者 通り道
参照先

回答ではないのですが、一応。

dotnetの場合、多重起動防止と引数の受け渡しには、一般的には
mutexとIPC通信を用います。
メッセージによる方法は、主に、Win32のNativeアプリの手法です。
(WinFormsも、中の仕組みは似たようなもんですが・・・)

mutexとIPCの両機能が、プロデルの命令になるかどうかは未確認です。

また、多重起動にかかわる処理は、できれば、プロデルのソースで
書かれたプログラムが実行されるよりも、もうちょっと手前でチェックと
引数の受け渡しをしてほしいところではあるので、プロデル本体に
対応を要望として挙げておくのも手かと思います。
(通常は、GUIの部品を確保し始めるよりも前で行う)

なお、本題のイベントの作り方は、
public event ProduireEventHandler ユーザセッション終了する;
のような、感じでプロデルから使うイベントを定義しておいて、
コンストラクタで、
this.SessionEnding += (sender, e) => { if (this.ユーザセッション終了する != null) { this.ユーザセッション終了する(sender, new ユーザセッション終了イベント情報(e)); } };
のような感じで、実際のイベントに紐づけています。
もととなるイベントからではない場合、コンストラクタ等での事前設定は不要で、イベントを発行したい時に、適切なsenderとイベント情報を引数に指定して、関数のように呼び出せば、大丈夫です(nullチェックは必要)
(上記は、WPFのApplicationを継承したクラスに使った例です)


関連一覧ツリー

をクリックするとツリーを一括表示します)

返信フォーム

(この投稿に返信する場合は下記フォームから投稿して下さい)
(1MBまで)
(英数字で8文字以内)

- 投稿修正/削除フォーム -
処理 No パスワード

▲ページの先頭へ

- WebForum -