3

プログラムの開始と停止を非同期的に監視するコードが必要です。

VB.NET または C# コードで作業できます。ありがとう。

4

1 に答える 1

2

これは、実際の監視を行うメソッドです。動的構成ファイルに関する限り、これらの監視スレッドを生成しているマスター スレッドはFileSystemWatcherhttp://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspxを使用して xml/text ファイルを監視できます。プロセス名とともに。キャンセル トークンを関数に渡し、各反復でトークンがキャンセルされたかどうかを確認できます。

static Task MonitorProcessAsync(string process, Action<string> startAction, Action<string> exitAction)
{
    return Task.Factory.StartNew(() =>
    {
        bool isProcessRunning = false;

        while (true)
        {
            int count = Process.GetProcessesByName(process).Count();
            if (count > 0 && !isProcessRunning)
            {
                startAction(process);
                isProcessRunning = true;
            }
            else if (count == 0 && isProcessRunng)
            {
                exitAction(process);
                isProcessRunning = false;
            }

            Thread.Sleep(1000);
        }
    });
}

Action<string> startAction = (process) => Console.WriteLine(process + " Started!");
Action<string> exitAction = (process) => Console.WriteLine(process + " Stopped!");
MonitorProcessAsync("notepad.exe", startAction, exitAction);
于 2012-11-14T04:29:56.307 に答える