私はカスタムスケジューラを書いているので、スケジューラが次のタイムスロットを見逃すほど多くの時間を費やすことなく、現時点で実行するように登録されているタスクを起動したいと考えています。したがって、次のスケジュールされたイベントまでスリープし、その次のイベントまたはイベントを起動して実行し、再びスリープするスレッドを作成しました。タスクはバックグラウンドでプロセスとして実行されるため、タスクをセットアップしてできるだけ早く起動することができます。制御プロセスのロギングを容易にするために、ウェイクアップ時にプロセスを起動するときに消費するタスクの内部キューを保持しますが、そのタスクのロギングを終了できる EventHandler も必要です。それが終了したら、それが失敗したか成功したか。
Process.Process() クラスを使用してバックグラウンドでタスクを実行しているため、ログを正しく終了できるように、一意のタスク参照をハンドラーに渡す方法がありません (確認できます)。以下のコードのようにハンドラを設定しています。
pTask = new Process();
pTask.Exited += new EventHandler(pTask_Exited);
私の研究では、EventArgs でデータをピギーバックする必要がある場合、設計に欠陥があるという 1 つの回答を集めた同様の質問に出くわしたため、意図的にピギーバックという用語をタイトルに使用しました。私のデザインに欠陥があるかもしれないことは認めますが、どのように異なる方法でより効果的にデザインするべきかについての啓蒙を見つけることができませんでした. 任意のガイダンスをいただければ幸いです。