در این مقاله راجع به انواع متد های خروج صحبت خواهیم کرد.اگر می خواهید بدانید چگونه از فرم جاری، از Application، از Thread خارج شوید این مقاله به شما کمک خواهد کرد.
متد های Exit() در سی شارپ
this.Close( )-1
وقتی از این متد در جایی مثلا در رویداد مربوط به یک دکمه استفاده می کنیم باعث خروج از فرم جاری می شود.به کد زیر توجه کنیدکلمه ی کلیدی this به فرمی که درون آن در حال نوشتن کد هستید اشاره می کند.و برای بستن فرمی که درون آن هستیم از این دستور استفاده می کنیم
private void button1_Click(object sender, EventArgs e) { this.Close(); }
2-System.Windows.Forms.Application.ExitThread( )
همان طور که می دانید thread یک جریان مستقل از دستورالعملهای یک برنامه است.thread همانند یک برنامه ثانویه است.با این حال ،خود thread یک برنامه نیست،thread به تنهایی اجرانمی شود بلکه در متن یک برنامه اجرا میشود.و از منابع برنامه هم استفاده می کند.می توان پردازش های مختلف را به چندین thread واگذار کردو آنها به صورت هم زمان اجرا میشوند و کارهای متفاوتی را انجام میدهند .
در پروژه ضمیمه و در داخل برنامه کنسول یک THREAD تعریف می کنیم و متد MYfun را برای اجرا به آن پاس می دهیم .خروجی این پروژه به صورت زیر است .
System.Threading.Thread t = new System.Threading.Thread(myFun); t.Start(); Console.WriteLine("Main thread Running"); Console.ReadKey(); } static void myFun() { Console.WriteLine("Running other Thread"); }
می بینید با اینکه ابتدا در کد نوشته ایم که THREAD اجرا شود ولی خروجی آن بعد از خط Console.WriteLine("Main thread Running"); آمده است.دلیل این امر این است که سیستم عامل زمان بندی انجام Thread ها را به عهده دارد و به ترتیب برنامه کاری ندارد.
حال برای خروج از این Thread دستور زیر را باید بنویسیم
private void btnClose_Click(object sender, EventArgs eventArgs) { System.Windows.Forms.Application.ExitThread( ); }
در صورت استفاده از این دستور، یک SUB APPLICATION و یا یک THREAD بسته خواهد شد.قبل از خروج از برنامه باید تمام نخ یا THREAD های فعال بسته شوند مگر اینکه THREAD هایی باشند که به صورت مستقل از برنامه و در پس زمینه اجرا شوند.
3-System.Windows.Forms.Application.Exit( )
وقتی در برنامه ویندوز فرم خود نیاز داریم که تمام APPLICATION را ببندیم از این دستور استفاده می کنیم .
private void button2_Click(object sender, EventArgs e) { System.Windows.Forms.Application.ExitThread(); }
4-System.Environment.Exit(a_ExitCode)
وقتی در برنامه کنسول هستیم و نیاز داریم تمام APPLICATION ها را ببندیم باید از متد System.Environment.Exit(a_ExitCode) استفاده کنیم . دستور (Environment.Exit(0 موجب میشود برنامه در همان نقطه به پایان برسد. پارامتری که این تابع دریافت می کند وضعیت پردازش مورد نظر را نشان میدهد.می توانید از آن چشم پوشی کنید.مقدار پیش فرض این پارامتر 0 می باشد.
public static void Main(string[] args) { System.Environment.Exit(0); }