PDA

View Full Version : سوال: چگونگی اجرای یک حلقه در تمام مدت زمانی که برنامه در حال اجراست



Naghibi
یک شنبه 28 فروردین 1390, 14:42 عصر
با سلام خدمت همه دوستان
من یک سری دستگاه سخت افزار دارم که مدام باید آن ها را مانیتور کنم، از دستگاه اولی شروع کرده تا به آخر برسم و مجدد از اول شروع کنم. چوان زمان اتصال و دریافت اطلاعات به هرکدوم مشخص نیست، نمی تونم از تایمر استفاده کنم، می خواستم از یک حلقه استفاده کنم اما نمی دونم توی چه رویدادی بذارم تا همیشه در حال اجرا باشه. کسی راه حلی داره که به من کمک کنه؟

vbhamed
دوشنبه 29 فروردین 1390, 01:24 صبح
سلام

چيزي كه شما لازم داريد چند ريسماني يا MultiThreading است كه در ويژوال بيسيك 6 به صورت مستقيم پشتيباني نميشه ولي در دات نت يه راحتي مي‌تونيد استفاده كنيد

اما در VB6 با كمك API مي تونيد اين كار رو انجام بدين كه اينجا مثالش هست

http://www.bukisa.com/articles/46698_multithreading-in-vb6

ضمنا در اين حالت براي بستن برنامه حتما بايد از دستور END استفاده كنيد و گرنه مثلا اگر با F8 برنامه رو اجرا كنيد اولا كارش انجام نميشه ثانيا موقعي كه برنامه رو متوقف كنيد از محيط vb خارج ميشه

البته يك راه ديگه هم وجود داره، اونم اينكه براي هر دستگاه يك برنامه مجزا بنويسيد و همه برنامه ها رو با هم از توي برنامه اصلي اجرا كنيد

returnx
دوشنبه 29 فروردین 1390, 23:15 عصر
البته می تونید از حلقه While به صورت زیر استفاده کنید:

While True
...
wend

البته احتمالا سیستم هنگ میکنه اما اگه امتحان کنید بعد نیست
اما بهترین روش استفاده از theard هست...