更新プログラムをインストールするために、プロジェクトで相互排除を保証したいと考えています。
プロジェクトはマルチインスタンスであるため、開いている他のインスタンスを閉じずにインスタンスを開くことができます。installUpdates()
利用可能なアップデートをインストールするという関数があります。複数のインスタンスが存在するため、アップデートをインストールする必要があるのはそのうちの 1 つだけです。1 つのインスタンスのみが更新プログラムをインストールするようにしたいと考えています。に初期化された(セマフォ)
と呼ばれる変数をグローバルに取得しています。新しいインスタンスが開かれると、変数は 1 ずつ増加します。4 つの開いているインスタンスがある場合、値は4 になります。インスタンスが閉じられると、値は 1 減ります。私が書いているアップデートをインストールするために:-noOfInstances
0
noOfInstances
if(noOfInstances == 1)
{
InstallUpdates();
}
今私の問題は、プロジェクトのインスタンスが開かれていることをプログラムで追跡する方法ですか? 私が識別できないインスタンスごとに一意の ID がある場合があります。Windows 環境を使用して C# アプリケーションを開発しています。