Scriem o aplicatie si vrem sa permitem rularea numai unei singure instante a respectivei aplicatii. Cum facem asta?
Metoda Main() a unei aplicatii winform arata asa:
static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
Cum ar trebui sa arate pentru a permite numai o singura instanta?
In primul rand adaog 2 instructiuni using:
using System.Net.Sockets; using System.Net;
Apoi modific metoda Main() asa:
static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { try { TcpListener server = new TcpListener(IPAddress.Any, 12345); server.Start(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } catch (SocketException e) { if (e.SocketErrorCode == SocketError.AddressAlreadyInUse) { MessageBox.Show("Only one instance is allowed."); } } } }
Category: Uncategorized
Pingback/Trackback
O singura instanta a aplicatiei. De preferat a ta. « Stand-up Programming in Romania.