معمولا متدهایی که بار پردازشی زیادی دارند موجب کندی برنامه میشن برای جلوگیری از این کار میشه این متد هارو با استفاده از یک Thread متفاوت از Thread اصلی برنامه فراخوانی کرد.

using System.Threading;

فرض کنیم این متد رو داریم :

void DoSomething()
{
...
}

تعریف Thread جدید برای متد مورد نظر :Thread myThread = new Thread(new ThreadStart(this.DoSomthing));

فراخوانی متد با استفاده از متد تعریف شده :

myThread.Start();

برای متوقف کردن Thread ایجاد شده :myThread.Abort();

نکته :  هر Thread فقط میتواند با object هایی کار کند که خودش آنها را ایجاد کرده است. مثلا اگر در متد DoSomething شما بخواهید با یک label که روی فرم است کار کنید cross-thread exception رخ خواهد داد چون آن label بوسیله Thread اصلی برنامه ایجاد شده است. منبع :barnamenevis.org