PDA

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



aliramazani
پنج شنبه 10 مرداد 1392, 14:11 عصر
چگونگی اجرای یک سری کد از یک زمان تا یک زمان دیگر به چه صورت هست؟

aliagamon
پنج شنبه 10 مرداد 1392, 14:18 عصر
منظورتو دقیق نفهمیدم اما میتونی یه تایمر بزاری با چنتا شرط لابه لا دستورا که چنوقت یه بار چک کنه ببینه چقدر گذشته میگردم ببینم چیزی بیدا میکنم یا نه

aliramazani
پنج شنبه 10 مرداد 1392, 14:24 عصر
من اینو نوشتم ولی نمیدونم گام حرکتم باید چی باشه.


DateTime time_p;
DateTime finish_time;
DateTime d;
time_p = DateTime.Parse("15.00");
finish_time = DateTime.Parse("22.30");

for (d = time_p; d <= finish_time; d = d+1)
{
///////////////////////// کد
}


من میخوام از ساعت 15 تا زمانی که ساعت 22.30 شد یک سری کد اجرا بشه.

aliagamon
پنج شنبه 10 مرداد 1392, 14:48 عصر
متغییراتو این شکلی تعریف کن:

DateTime now = DateTime.Now;
DateTime today = now.Date;
DateTime time_p = today.AddHours(15);
DateTime finish_time = today.AddHours(22.5);

و اینم فور:



bool inRange = (start <= now && now <= end)
bool truew=true;
while (truew)
{
if(inRange){
///////////////////////// کد
}
else
truew=false;
}

aliagamon
پنج شنبه 10 مرداد 1392, 15:01 عصر
با روش شما ققط در اون زمان مشخص کار میکنه نه همیشه
اما میشه اینظوری ازش استفاده کرد:

if (tm == "22:30:00 ب.ظ")
{
break;
}

roolinjax
پنج شنبه 10 مرداد 1392, 17:44 عصر
سلام
کدی که میخواید اجرا بشه چی هست ؟
سرعت اجرای دستورالعمل براتون مهم نیست ؟
اینکه مثلا توی سیستمی مثلا در این چند ساعت n بار اجرا بشه و در سیستم دیگه m بار ؟
فکر نمیکنم حلقه ی for منطقی باشه برای اینکار

danialafshari
پنج شنبه 10 مرداد 1392, 22:34 عصر
سلام
شرمنده من درست متوجه نشدم
شما می خواید بین 2 تایم یک سری کد دائما اجرا بشه
بیشتر توضیح بدید تا بهتر راهنمایی بشید.

13601360
پنج شنبه 10 مرداد 1392, 23:25 عصر
از کتابخانه Quartz.NET (http://quartznet.sourceforge.net/) هم می تونید استفاده کنید
اینجا (http://www.dotnettips.info/post/997/%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D9%88%D8%B8%D8%A7%DB%8C%D9%81-%D8%B2%D9%85%D8%A7%D9%86-%D8%A8%D9%86%D8%AF%DB%8C-%D8%B4%D8%AF%D9%87-%D8%A8%D8%A7-quartz-net-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84) هم می تونید مطالب خوبی درباره این کتابخانه ببینید

aliramazani
جمعه 11 مرداد 1392, 16:46 عصر
ببینید من متغیر زمان را دارم که از 15 شروع میشه. پس از اجرای حلقه هربار یه زمان خاصی بهش اظافه میشه. مثلا 15.15 در چرخش بعدی میشه 15.40 در چرخش بعدی میشه 16 تا بلاخره باید به 22.30 برسه. و از 22.30 بیشتر نشه و در این مرحله شرط تموم بشه.
توی این مدت کدهایی که توی حلقه هستن همین زمان را به یه سری چیزای دیگه توی دیتابیس ذخیره میکنه. که اینش مشکل نداره.

roolinjax
جمعه 11 مرداد 1392, 18:05 عصر
پس تعداد دفعات اجرای دستور مهم نیست و تعداد ثبت شدن ها توی سیستم های مختلف ایرادی نداره ؟
اگر جواب سوال بالا مثبته یه راه حل اینه :

یه متغیر تعریف کنید که مقدار bool بگیره و در همه ی بلاک ها قابل دسترسی باشه
توی حلقه ی مورد نظر هر بار true یا false بودنش رو چک کنید که بر اساس اون کدها اجرا بشه یا نه
یه تایمر هم بذارید با interval یک دقیقه که هر دقیقه ساعت سیستم رو چک کنه ، اگر از ساعت مورد نظر گذشت متغیر مذکور رو برابر false کنه.