PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : اجرای همزمان چند عمل با استفاده از Thread ها در NET



TAHA
03-11-2010, 08:55 PM
.wysiwyg { BACKGROUND: #f5f5ff; FONT: 10pt tahoma,tahoma,tahoma; COLOR: #000000 } P { MARGIN: 0px } .inlineimg { VERTICAL-ALIGN: middle } در ابتدا توضیح مختصری درباره Thread ها خواهید خواند و سپس نمنونه کدی به زبان سی شارپ .
Thread ها یکی از امکاناتی هستند که شما را قادر می سازند همزمان چند کار را با هم انجام دهید. البته Thread ها بسیار پیچیده تر از این حرف ها هستند ولی اگر هیچ اطلاعی از این بحث ندارید و فقط می خواهید هر چه زودتر در کدهایتان چند کار را همزمان انجام دهید به مثال زیر توجه کنید .


static void Main()
{
class1 st = new class1 ();




در خط زیر می توانید به جای نام method1 و method2 نام متد های خود را بگذارید یا اینکه اگر تعداد بیشتری متد را می خواهید اجرا کنید فقط کافی است از خط زیر یک کپی دیگر بنویسید.


System.Threading.Thread th1 = new System.Threading.Thread(new System.Threading.ThreadStart (st. method1));

System.Threading.Thread th2 = new System.Threading.Thread(new System.Threading.ThreadStart(st. method2));


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



th1.Start();
th2.Start();
}




در اینجا هم تعریف متد های method1 و method2 را که در کلاس class1 کپسوله شده اند آورده ایم.


public class class1
{
public class1 ()
{
}

public void method1()
{
for (int i = 0; i < 999; i++)
{
// Do something
}
}
public void method2()
{
for (int i = 0; i< 999999999; i++)
{
// Do something
}
}
}