PDA

View Full Version : چطوری می تونم چند حلقه رو به صورت همزمان به کار بندازم ؟



mahdi_farhani
چهارشنبه 10 خرداد 1385, 17:10 عصر
سلام دوستان . من می خواهم حداقل 3 تا حلقه For به صورت همزمان به هم کارکنند. از تایمر نمی خوام استفاده کنم چون سرعت پردازشو میاره پایین . تقریباٌ به صورت موازی با هم کار کنند و اگر هرکدوم به یک نتیجه مخصوص رسید بقیه متوفق بشه .
به نظر خودم باید یک کلاس تعریف کنم (یا یک شئ)درست کنم و به تعداد مورد نظر داخل فرم بزارم و استفاده کنم .

subsub
پنج شنبه 11 خرداد 1385, 12:58 عصر
می تونی جلوی Next نام هر کدوم رو بنویسی
مثل این:


For Counter1=1 To 100
For Counter2=0 To 50
For Counter3=2 To 100

' Your Command

Next Counter1,Counter2,Counter3

mahdi_farhani
پنج شنبه 11 خرداد 1385, 13:09 عصر
دوست عزیز اینطوری حلقه های تو در تو میشه
به درد من نمیخوره
من می خواهم همزمان چند حقله For به طوری موازی با هم کار کنند

MM_Mofidi
پنج شنبه 11 خرداد 1385, 13:48 عصر
باید از ریسمان استفاده کنی MUlti Thered

Hossein Bazyan
پنج شنبه 11 خرداد 1385, 18:06 عصر
باید از ریسمان استفاده کنی MUlti Thered
لطفا بیشتر توضیح دهید و اگه ممکنه یه مثال هم بزنید

mahdi_farhani
جمعه 12 خرداد 1385, 04:25 صبح
سلام آقای مفیدی ممنون ولی میشه بیشتر توضیح بدید .

MM_Mofidi
شنبه 13 خرداد 1385, 21:23 عصر
فکر کنم آقای نصیری یک مقاله مناسب در مورد چند ریسمانی در vb داشت همینجا یا تو وبلاگ ایشون ببنید بنظرم بهتر از توضیح مختصر منه

amirsadeghi
پنج شنبه 26 مرداد 1385, 16:27 عصر
سلام
ببخشید که یه تازه وارد تو بحثتون دخالت میکنه
شما میتونید سه تا زیر برنامه درست کنید و هر حلقه رو تو یه زیر برنامه بنویسید بعد وقتی خواستین حلقه ها اجرا بشه هر سه تا زیر برنامه رو صدا بزنین
اگه بازم مشکل بود بهم بگو
خداحافظ

ho-nazari
یک شنبه 14 بهمن 1386, 01:22 صبح
استاد مهدی فکر می کنم که این کار به معنایی که دنبالش هستی امکان پذیر نباشه
چون حتی در صورت نوشتن این کلاس باید آنها را فراخوانی کنید و این کار خود اولویت بندی بوجود می آورد و ابتدا کلاس اول کارش را انجام می دهد بعد کلاس دوم و الی آخر
به هر حال اگر بتوان حلقه را طوری نوشت که یک قسمت حلقه از یک مقدار تا مقدار دوم را کنترل کند یا انجام دهد و یک قسمت دیگر حلقه از مقدار دوم تا سوم و الی آخر در در نهایت این سی ÷ی یو است که باید پردازش ها را انجام دهد و تک وظیفه ای بودن پردازنده ها محدودیت را مجدداً ایجاد می کند
به نظرم حتی سیستم های چند پردازنده نیز بیش از یک پردازنده را به به یک برنامه یا روتین نمی سپارند
از طرف شاگرد شما
در ثانی اگه شما یک مسئله ای مطرح می کنید فکر کنم که خودتون باید حلش کنید و نتیجه را به بیل گیتس هم بگید چون محدوده دانش سایر برنامه نویسان کوچکتر از کسری از دانش شما می باشد:متفکر:

Mbt925
یک شنبه 14 بهمن 1386, 03:10 صبح
این نمونه کمکتون می کنه:


http://barnamenevis.org/forum/showpost.php?p=460924&postcount=187

vbhamed
یک شنبه 14 بهمن 1386, 03:21 صبح
سلام

یک راه دیگه هم وجود داره

3 تا پروژه جدا بنویس که تو هر کدوم از یک راه مختلف مسأله حل می شه، بعد تو پروژه اصلی هر 3 تا پشت سر هم اجرا کن (با دستور Shell) که در عمل تقریبا با هم اجرا میشن
برای اینکه بفهمی به جواب رسیدی یا نه هم می تونی یک مقدار تو رجیستری ثبت ‌کنی که بقیه برنامه ها هم در حین عملیات اون مقدار رو تست می کنن.

بهر حال اینم یک راهه