PDA

View Full Version : اجرای خودکار برنامه در یک بازه زمانی مشخص



Yasersadegh
دوشنبه 13 اسفند 1386, 19:37 عصر
سلام
من می خوام که برنامه ای که نوشتم هر یک ساعت یکبار خوکار اجرا بشه و یا اینکه یکبار اجرا بشه و بعد از اون هر یکساعت یکبار دستورات مورد نظر رو انجام بده. در واقع یه جورایی همون مقیم توحافظه باشه.
برای اینکار من راه حل استانداردی رو نمی دونم ولی راهی که به ذهنم خورده استفاده از یک حلقه بینهایت در ابتدای دستورات است که ساعت جاری رو داریم بعد در حلقه چک می شود که اگر یکساعت از آن گذشته بود دستورات را اجرا کند وگرنه دوباره چک کند. این کار رو تا بینهایت انجام میدهد.
ضمنا برنامه تحت کنسول بوده و با دستوراتی کنسول را مخفی کرده ام .
حالا می خواهم ببینم راه حل بهترو فنی تر وجود داره(که حتما وجود داره.) چیه؟ من برای اینکار باید چکار کنم.:متفکر:

با تشکر

Yasersadegh
دوشنبه 13 اسفند 1386, 22:46 عصر
کسی نمی خواد در این زمینه یه کمکی به من بکنه.!!؟

Nima_NF
دوشنبه 13 اسفند 1386, 23:46 عصر
1) یک راه ساده و خوب می تواند همان حلقه while بینهایت باشد به این شکل که از Sleep برای مدت زمان مشخصی در داخل حلقه استفاده شود تا CPU مصرف نشود ، این تابع جز توابع 32 بیتی و قابل استفاده در کنسول نیز هست.

2) استفاده از توابع همزمان سازی ها برای thread ها ، مانند WaitForSingleObject برای معلق سازی اجرا بدون مصرف اضافی منابع سیستم. همانند روش قبل

3) راه دیگر استفاده از برنامه win32 بدون پنجره یا نمای خاصی به جای برنامه کنسول می باشد و سپس استفاده از timer ها.

4) استفاده از service ها که کار آسانی نیست ولی کنترل زیادی به شما خواهد داد که فکر نمی کنم برای کار های ساده چندان به کار شما بیاید