запуск приложения только в единственном экземпляре

Для того, что бы Ваша программа запускалась только в единственном экземпляре, нужно использовать класс Mutex (mutual exclusion — взаимное исключение), который обеспечивает синхронизация процессов и их блокировку.
Скрыть

Показать

Копировать
  Program.cs  
  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Threading.Tasks;
  • using System.Windows.Forms;
  •  
  • namespace _0016 {
  •  static class Program {
  •   /// <summary>
  •   /// The main entry point for the application.
  •   /// </summary>
  •   [STAThread]
  •   static void Main() {
  •    bool one;
  •    //true - вызывающий поток является изначальным владельцем
  •    //"0016" - имя программы
  •    //out one - присваивает булево значение, является ли поток изначальным владельцем
  •    System.Threading.Mutex M = new System.Threading.Mutex(true, "0016", out one);
  •    if(one) {
  •     Application.EnableVisualStyles();
  •     Application.SetCompatibleTextRenderingDefault(false);
  •     Application.Run(new Form1());
  •    }
  •    else {
  •     MessageBox.Show("Приложение уже выполняется!");
  •    }
  •   }
  •  }
  • }