PDA

View Full Version : مشکل در استفاده از حلقه



p30rex
چهارشنبه 01 تیر 1390, 13:53 عصر
سلام
تو برنامه ای که من دارم روش کار میکنم یک دستور باید مدام تکرار شه تازمانی که یک اتفاق خاص بیفته
من برای انجام این کار از حلقه ی do while و exit do استفاده کردم
از اونجایی که در طول اجرای برنامه این حلقه فعاله و کد ها به صورت خطی اجرا میشه و نه موازی پس نمیشه حتی رو کلیدی کلیک کرد و کلیک و ... باعث هنگ کردن برنامه میشه و نمیشه حتی وارد منوها شد
آیا روشی هست که بشه این کار رو باهاش انجام داد

مثلا یک آنتی ویروس چطوری همزمان هم میتونه دنبال ویروس بگرده و هم کارهای دیگه بکنه
باتشکر

M.T.P
چهارشنبه 01 تیر 1390, 14:29 عصر
از تایمر استفاده کنید.

p30rex
چهارشنبه 01 تیر 1390, 14:38 عصر
استفاده از تایمر دقت مورد نظر رو نداره!!!
سرعت پردازش همه ی سیستم ها مگه با هم یکیه؟!!

M.T.P
چهارشنبه 01 تیر 1390, 14:49 عصر
حلقه Do While برای چک کردن پروسه ای که معلوم نیست کی قراره اتفاق بیفته جز درگیر کردن Cpu چیزی رو بدنبال نداره (تو Task Manager یه نگاه به درصد استفاده از Cpu توسط نرم افزارتون بندازید)

اما شما می تونید بهترین روش رو با توجه به پروسه ای که قراره اتفاق بیفته انتخاب کنید.
در خصوص جزئیات برنامه توضیح بدید.

p30rex
چهارشنبه 01 تیر 1390, 15:04 عصر
باتایمر کار میکنه
اما میخوام بدونم امکانش هست تو سیستم هایی که سرعت پردازششون پایینه برنامه دچار مشکل شه
یعنی قبل از انجام عملیات تایم مشخص شده برای تایمر به اتمام برسه

M.T.P
چهارشنبه 01 تیر 1390, 15:32 عصر
ببینید یک مثال:
اگه شما یک روال رو در تایمری با دقت یک ثانیه اجرا کنید و روال نامبرده 3 ثانیه طول بکشه تایمر روال رو پس از یک ثانیه قطع نمیکنه ، بلکه منتظر می مونه تا روال به پایان برسه و بلافاصله پس از پایان روال یا تابع کارش رو شروع میکنه.
با اینکه شما اینتروال رو روی یک ثانیه تنظیم کردید اما عملا اینتروال 3 ثانیه خواهد بود.

returnx
چهارشنبه 01 تیر 1390, 17:30 عصر
برای نوشتن یک چنین برنامه ای بهتره شما از Multi Thearding (چند نخی) استفاده کنید که متاسفانه VB6 این امکان رو بهتون نمیده ، ولی میتونید از API ها کمک بگیرید که باز هم درصد ایجاد خطا زیاد است ، بهتره اول شما در مورد Multi Thearding در فروم جستجو کنید و یک سری مطلب در موردش بخونین بعد پروژتون رو با VB.net انجام بدید که Multi Thearding تو VB.net آسون تر است و امکان ایجاد خطا کم...