C#/VB  アプリケーションの二重起動を防止する方法

アプリの二重起動を防止したいんですけどどうしたらいいですか?

Mutexクラスを使用すると二重起動を防止できます。

目次

受講者数No.1!初心者からプロへ導く信頼のスクール

    短期間で習得可能!未経験から実践力を磨く充実のプログラム

    今なら無料相談でAmazonギフトカードがもらえる!

    Mutexクラスで二重起動を防止する方法

     アプリケーションの二重起動を防止するには、Mutexクラスを使用します。

     Mutexクラスは、共有リソースにアクセスするときに使用される同期制御のためのクラスであり、この特徴を使い、複数のアプリケーションから1つのリソースを共有することにより、アプリケーションの二重起動を防ぐことができます。

     Mutexクラスは、アプリケーションをマルチスレッド化するときにも使用されます。

     Mutexクラスを使用することで、アプリケーションの二重起動を防ぐことができるだけでなく、アプリケーションをマルチスレッド化する際にも、スレッドセーフなアプリケーションを実装することができます。

    using System;
    using System.Threading;
    
    namespace ConsoleApplication
    {
        class Program
        {
            static void Main(string[] args)
            {
                // Mutexを作成する
                bool createdNew;
                Mutex mutex = new Mutex(true, "MyApplication", out createdNew);
    
                // Mutexを既に持っているプロセスがいる場合
                if (!createdNew)
                {
                    // メッセージを表示して終了する
                    Console.WriteLine("Another instance is already running.");
                    return;
                }
    
                // アプリケーションを実行する...
    
                // Mutexを解放する
                mutex.ReleaseMutex();
            }
        }
    }
    Imports System
    Imports System.Threading
    
    Module Module1
    
        Sub Main()
            ' Mutexを作成する
            Dim createdNew As Boolean
            Dim mutex As New Mutex(True, "MyApplication", createdNew)
    
            ' Mutexを既に持っているプロセスがいる場合
            If Not createdNew Then
                ' メッセージを表示して終了する
                Console.WriteLine("Another instance is already running.")
                Return
            End If
    
            ' アプリケーションを実行する...
    
            ' Mutexを解放する
            mutex.ReleaseMutex()
        End Sub
    
    End Module

     上記のサンプルは、Mutexクラスのコンストラクタを使用して、Mutexを作成します。作成するMutexには、名前を指定します。

     このとき、outパラメーターで指定した変数に、このMutexが新しく作成されたかどうかが格納されます。次に、作成されたMutexを既に持っているプロセスがいるかどうかを判定します。もし、既に持っているプロセスがいる場合は、アプリケーションを実行せずに終了します。

    最後に、アプリケーションを実行し終わった後には、ReleaseMutexメソッドを使用して、Mutexを解放します。

    リスキリングでキャリアアップしてみませんか?

    リスキリング(学び直し)は、経済産業省が推奨しており、

    今だけ、最大70%のキャッシュバックを受けることができます。

    リスキリング 給付金が出るスクール紹介

    最大70%の給付金が出るおすすめのプログラミングスクール!

    国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!

    興味のある方はすぐに確認しましょう。

    Microsoft Learnの解説

    よかったらシェアしてね!
    • URLをコピーしました!
    • URLをコピーしました!

    コメント

    コメントする

    CAPTCHA


    目次