برنامه ,mutex ,application ,runiing ,false ,static ,messagebox show ,show برنامه ,اجرا میباشد ,threading mutex ,system threading ,system threading mutex

سلام دوستان
برخی برنامه ها لازمه که فقط یک بار اجرا بشن خصوصا برنامه هایی که با ای پی سروکار دارن یا برنامه هایی که برای کار با بانکهای اطلاعاتی نوشته شدن
این موضوع مهمی هست وقتی پروژ ه ای بصورت تجاری نوشته شده و به مشتری داده شده باید جلوی باگها و خطاهای اون گرفته بشه
در این پست از متدی ساده که ازاجرای مجدد برنامه جلوگیری میکنه بهتون اموزش میدم
در این روش از کلاس mutex استفاده کردم که لازمه هدر thread نیز به پروژه اضافه بشه
ابتدا در پروژه خود کلاس program.cs رو باز کنید.......
کدهای داخل کلاس main رو پاک کنید و کدهای زیر رو جایگزین کنید 
بجای appname نام پروژه خودتون بجاش بزارید
در این قطعه کد با استفاده از متغییر بولین که فقط درست یا غلط یا صفر و یک رو بررسی میکنه وضعیت اجرای برنامه را تحت کنترل داره


 static void Main()
        {
            bool runiing;
            System.Threading.Mutex mtx = new System.Threading.Mutex(true,"appname",out runiing);
            if (!runiing)
            {
                MessageBox.Show("برنامه در حال اجرا میباشد");
            }
            else
            {
                Application.Run(new Form1());
            }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

        }
این هم روش دوم که بنظم امنیتش بالاتره بخاطر استفاده از کلید
static void Main()
        {
            Mutex mutex = new Mutex(false, appGuid);
            if (!mutex.WaitOne(0, false))
            {
               MessageBox.Show("برنامه در حال اجرا میباشد");
return; } GC.Collect(); Application.Run(new Form1()); GC.KeepAlive(mutex); } private static string appGuid = "f2r5f-d02fs2-f9hxGd-05Hs2s";
منبع اصلی مطلب : .NET Developer
برچسب ها : برنامه ,mutex ,application ,runiing ,false ,static ,messagebox show ,show برنامه ,اجرا میباشد ,threading mutex ,system threading ,system threading mutex
اشتراک گذاری: این صفحه را به اشتراک بگذارید

ساموزیک : محدود کردن برنامه به اجرای یک بار