PDA

View Full Version : مشکل در اجرای یک Thread بعد از اتمام دو Thread دیگر



Hadi-Hashemi
دوشنبه 04 اردیبهشت 1396, 23:16 عصر
سلام دوستان،

سه عدد Thread دارم به نامهای th_2، th_1 و th_3 حالا میخوام th_3 بعد از تموم شدن کار th_1 و th_2 شروع بشه.

لطفا منو راهنمایی کنین.

با تشکر :لبخندساده:

ژیار رحیمی
سه شنبه 05 اردیبهشت 1396, 14:25 عصر
سلام.می تونی از یک Thread کمکی جهت مدیریت سه Thread دیگه استفاده کنی و یا از متد Join ترد انتظار جهت اتمام دو Thread دیگر استفاده کنی(در حالت دوم Theard های یک و دو موازی اجرا نمی شود بلکه بصورت متوالی اجرا میشوند). در روش اول Thread های اول و دوم بصورت موازی اجرا خواهند شد سپس Thread سوم اجرا میشود.

Task.Factory.StartNew(() =>
{
Task task1 = Task.Factory.StartNew(() => fn1());
Task task2 = Task.Factory.StartNew(() => fn2());
}).ContinueWith((c) =>
{
fn3();
});



Thread t3 = new Thread(doStuff);
Thread thread = new Thread(() =>
{
Thread t1 = new Thread(doStuff);
t1.Start();
Thread t2 = new Thread(doStuff);
t2.Start();
});
thread.Start();
thread.Join();
t3.Start();

با استفاده از متد jion

Thread t1 = new Thread(doStuff);
t1.Start();
Thread t2 = new Thread(doStuff);
t2.Start();
Thread t3 = new Thread(doStuff);
t1.Join();
t2.Join();
t3.Start();