3

ユーザーがアプリケーションを起動するたびに、インスタンスが既に実行されているかどうかを確認する手順を教えてください。実行されていない場合は起動します。それ以外の場合は現在のものに焦点を当てます.iはすでにシングルトンアプリケーションのコードを試しましたが、多くのエラーが発生しました. 正しく動作していません。これに対する他の代替ソリューションを提供できますか??

4

4 に答える 4

3

Mutexここで説明されているように、クラスを使用する必要があります:コンソール アプリケーション C# でシングルトンを実装する最良の方法?

編集:私は自分のコードにこれを持っています:

class Program
{
    public const string AppName = "...";
    private static readonly Mutex mutex = new Mutex(true, Program.AppName);

    public Program()
    {
        if (!mutex.WaitOne(TimeSpan.Zero, true))
            throw new ApplicationException("Another instance already running");
    }
}
于 2010-02-02T08:55:00.740 に答える
1

名前付きを使用できMutexます。

名前付きシステム ミューテックスは、オペレーティング システム全体で表示され、プロセスのアクティビティを同期するために使用できます。名前を受け入れるコンストラクターを使用して、名前付きシステム ミューテックスを表す Mutex オブジェクトを作成できます。

于 2010-02-02T07:16:50.673 に答える
0

バックグラウンド ワーカーを使用している場合、ミューテックスの使用は適用されません。がビジーの場合、backgroundWorker複数のインスタンスを持つことができます。

于 2012-04-26T02:13:21.567 に答える