اجرای فقط یک نسخه از برنامه سی شارپ به روش mutex
گاهی اوقات لازم میشود تا فقط یک نسخه از یک نرم افزار اجرا شود
در این پست قصد اموزش این عمل را به کمک Mutex در سی شارپ که کاری بسیار اسان است را داریم
در پروژه ویندوفرم سی شارپ خود از بخش Solution فایل program.cs را باز کنید و کد را بصورت زیر تغییر دهید
static void Main()
{
bool runed;
System.Threading.Mutex mtx = new System.Threading.Mutex(true,"ApplicationName",out runed);
if (!runed)
{
MessageBox.Show("برنامه در حال اجرا است");
}
else
{
Application.Run(new Form1());
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
}
گفتنی است در عبارت mutext پارامتر اول مقداری true میگیرد و مقدار دوم یک رشته با مقدار اختیاری که معمولا نام برنامه می باشد و مقدار سوم یک متغیر با مقدار خارجی از نوع bool
میگیرد
بعد از اجرا mutex حالا bool تعریف شده در اول دارای مقدار است (چون از نوع out داخل تابع میباشد)
با برسی درست یا اشتباه بودن مقدار runed میتوان وضعیت برنامه را تشخیص داد که اگر در حال اجرا است با اجرا مجدد یک پیام به کاربر نشان دهد
در غیر این صورت برنامه اجرا گردد
در این پست قصد اموزش این عمل را به کمک Mutex در سی شارپ که کاری بسیار اسان است را داریم
در پروژه ویندوفرم سی شارپ خود از بخش Solution فایل program.cs را باز کنید و کد را بصورت زیر تغییر دهید
static void Main()
{
bool runed;
System.Threading.Mutex mtx = new System.Threading.Mutex(true,"ApplicationName",out runed);
if (!runed)
{
MessageBox.Show("برنامه در حال اجرا است");
}
else
{
Application.Run(new Form1());
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
}
گفتنی است در عبارت mutext پارامتر اول مقداری true میگیرد و مقدار دوم یک رشته با مقدار اختیاری که معمولا نام برنامه می باشد و مقدار سوم یک متغیر با مقدار خارجی از نوع bool
میگیرد
بعد از اجرا mutex حالا bool تعریف شده در اول دارای مقدار است (چون از نوع out داخل تابع میباشد)
با برسی درست یا اشتباه بودن مقدار runed میتوان وضعیت برنامه را تشخیص داد که اگر در حال اجرا است با اجرا مجدد یک پیام به کاربر نشان دهد
در غیر این صورت برنامه اجرا گردد