سلام
بزار یه طوری مثال بزنم که راحت درک کنی ببین روشهای مختلف برای استفاداز ترد هست من دو نوع رو میگم
ابتدا
فرضا این یه متد هست و میخاییم کدهاینو اجرا کنیم
میاییم یه ترد میسازیم و این متد رو میدیدم بهش
private void Encryption()
{
//کدها
}
public static Thread mythread;
public static ThreadStart ts;
//اینجا میتونه لود فرم یا محل اجرای کد باشه مثلا باتن اجرایی
ts = new ThreadStart(Encryption);
mythread = new Thread(ts);
mythread.Start();
تو کدهای بالا متد رو دادیم به ترد و اونم اجرایی میکنه
///////////////////////////////////////////////////////
روش دوم این کدهای پایین رو داخل یه کلاس بریز
using System;
using System.Collections.Generic;
using System.Threading;
using System.Text;
namespace File_Encryption
{
class ThreadClass
{
public static Thread mythread;
public void StartThread()
{
//این showwait
//فرم نمایش برای انتظار اجرای برنامه هست
mythread = new Thread(new ThreadStart(showwait));
mythread.Start();
}
public void showwait()
{
WaitFrm wf = new WaitFrm();
wf.ShowDialog();
}
public void EndThread()
{
mythread.Abort();
mythread = null;
}
}
}
یه نمونه از کلاس توی فرم مربوطه میسازیم
ThreadClass threadin = new ThreadClass();
بعد تو کدی که قرار اجرا بشه اینو میزاریم یعنی thread
شروع بشه
threadin.StartThread();
و انتهای کد اجرایی اینو میزاریم
threadin.EndThread();
در این زمان اون فرم انتظار نمایش داده میشه تا دستور اجرا بشه
روش دوم این شکلی میشه