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.