私はマルチインスタンスアプリケーションで作業しています。どのインスタンスが現在実行されているかを知るための方法はありますか?
アプリケーション名のウィンドウプロセスをカウントするためにコードを1つ使用しましたが、それは良い方法ではありません。カウントを行うためのセマフォの実装。現在実行中のインスタンスの数
string fileName = Process.GetCurrentProcess().MainModule.FileName;
int count = 0;
foreach (Process p in Process.GetProcesses())
{
try
{
if (p.MainModule.FileName == fileName)
{
count++;
}
}
catch { }
}
MessageBox.Show("Total Instances Running are " + count);
それがセマフォまたはインスタンスが閉じたときに新しいインスタンスを1つ作成し、デクリメントされて1だけインクリメントされ、いくつかのインクリメントとデクリメントカウンタを使用して行うことができます。
回答ありがとうございます。 u plsはmsdn以外のいくつかのリソースを教えてくれますか? –
Google? https://www.google.co.il/search?q=.net+semaphore&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a – zmbq
セマフォの問題クラスは、それを解放せずにカウントを得ることができないので、かなり面倒なコードを生成することができます。 –