PDA

View Full Version : اجرای تابع



Himalaya
جمعه 14 دی 1386, 13:57 عصر
میخواستم ببینم اصلا میشه تو زبانهای برنامه نویسی(مخصوصا c#) دو تابع همزمان اجرا بشن و هر کدوم زودتر به نتیجه (true ...false) رسیدن یه کاری انجام بشه یا نه؟ممنون میشم اگه راهنماییم کنید.

razavi_university
جمعه 14 دی 1386, 14:21 عصر
اگر درست سوالت رو متوجه شده باشم!!
میتونی از Tread ها استفاده کنی و هر Tread رو برای یک تابع بگذاری تا باهم کار کنند.
برای اینکه کدومشون زودتر به نتیجه رسیدن هم میتونی از یک متغیر Static استفاده کنی که هر تابعی که به جواب رسید آن متغیر مقدار دهی شه و هر تابع مقدار اون متغیر رو برای ادامه کار رو چک کنه

Himalaya
جمعه 14 دی 1386, 17:30 عصر
میشه یه مثال کوچیک برای من بنویسید...این طوری بهتر متوجه میشم...آخه 2 ماهه که #C
کار میکنم...یعنی تازه کارم...

razavi_university
جمعه 14 دی 1386, 22:39 عصر
بهتره مسئله رو یکم بازتر کنی تا من هم بتونم مثالی بزنم که بیشتر کمک کنه
مثلا توابع واسه چه کاری هستند ؟
ورودی و خروجیشون چیه؟
کاری که می خوایید در آخر انجام بشه چیه؟

Amir Oveisi
شنبه 15 دی 1386, 00:32 صبح
میشه یه مثال کوچیک برای من بنویسید...این طوری بهتر متوجه میشم...آخه 2 ماهه که #C
کار میکنم...یعنی تازه کارم...

دوست عزیز اگه اینجوریه من توصیه میکنم از MSDN اول در باره Threading و اینکه چیه و به چه درد میخوره مطالعه کنید تا با مفاهیمش آشنا شین
در غیر این صورت ممکنه با درک اشتباه از موضوع براتون مشکلات بیشتری پیش بیاد

موفق باشید

Himalaya
شنبه 15 دی 1386, 09:59 صبح
راستش برنامه ای نوشتم که تو یک عکس دنبال طیف رنگ خاصی میگرده...مثلا توی یه عکس 768*1024 که اون طیف رنگی توش نیست (بدترین حالت)حدود 50 هزارم ثانیه طول میکشه تا کل عکسو چک کنه...میخوام دو تا یا اگه شد حتی بیشتر تابع بنویسم که عکسو به تعداد توابع تقسیم کنم تا هر کدوم یک قسمت از عکسو بررسی کنن(البته میخوام کارشونو با هم شروع کنن) و اگه هر کدوم زودتر رنگ مورد نظر رو پیدا کرد مقدار true رو برگردونه و بقیه توابع دیگه ادامه ندن...این طوری فکر کنم سرعت کار خیلی بیشتر بشه...البته این نظر منه و نمیدونم درست باشه یا نه...ممنون

Himalaya
شنبه 15 دی 1386, 21:15 عصر
کسی نمیتونه کمک کنه؟؟؟

razavi_university
شنبه 15 دی 1386, 21:55 عصر
traed مبحث چندان ساده نیست ولی فکر کنم این کد کارتو راه بندازه


Thread myThread;

myThread = new Thread(new ThreadStart(METHOD));
myThread.Start();



یک tread تعریف می کنی و به کمک اون، Method ی رو که که خواهی اجرا می کنی

Himalaya
یک شنبه 16 دی 1386, 13:10 عصر
قرار بود یک مثال به من بدید...