-4

アプリケーションで単一のインスタンスのみを実行するようにしたいのですが、そのために下に貼り付けたコードを使用しましたが、エラーが発生します:

Error   1   'MYAPP.App' does not implement interface member 
            'Microsoft.Shell.ISingleInstanceApp.SignalExternalCommandLineArgs
             (System.Collections.Generic.IList<string>)'
            C:\Users\moataz\Desktop\MYAPP 26-06-2013\MYAPP\App.xaml.cs

http://www.codeproject.com/Articles/84270/WPF-Single-Instance-Application

4

4 に答える 4

3

あなたが投稿した記事に記載されているように -

手順 3: アプリケーション クラスに ISingleInstanceApp (SingleInstance.cs で定義) を実装します。

そのため、このインターフェイスを に実装する必要がありますApp.xaml.cs

Mutexただし、個人的には、を使用して達成することをお勧めしますsingle instance application。詳細はこちらでご覧いただけます

于 2013-07-20T09:12:55.350 に答える
0

以下のコードを App.xaml.cs に追加して、動作するかどうかを確認してください。

static EventWaitHandle s_event;
bool created;  

App()
{
    s_event = new EventWaitHandle (false, EventResetMode.ManualReset, "my program#startup", out created) ;
    if (!created)
    {
        if (MessageBoxResult.OK == MessageBox.Show("Only 1 instance of this application can run at a time", "Error", MessageBoxButton.OK))
            App.Current.Shutdown();
    }
}
于 2013-07-20T09:17:15.917 に答える
0

Mutex を使用しない理由は、App.xaml.csでこれを行います。

 Mutex myMutex ;

 private void Application_Startup(object sender, StartupEventArgs e)
 {
    bool aIsNewInstance = false;
    myMutex = new Mutex(true, "MyWPFApplication", out aIsNewInstance);  
       if (!aIsNewInstance)
        {
          MessageBox.Show("Already an instance is running...");
          App.Current.Shutdown();  
        }
  }
于 2013-07-20T09:45:17.007 に答える