با سلام.
یه برنامه دارم که میخوام هر روز سر ساعت مشخصی کاری رو انجام بده.
قطعه کد زیر رو پیدا کردم قسمتهایی از این کد رو متوجه نمیشم ممنون میشم توضیح بدید:
using Timer=System.Threading.Timer;
class MyScheduledTask
{
private static Timer dailyWakeupCall;
static void Main(string[] args)
{
SetTime();
Thread.Sleep(System.Threading.Timeout.Infinite);
}
private static void SetTime()
{
DateTime currentTime = DateTime.Now;
DateTime scheduleTime = new DateTime(currentTime.Year, currentTime.Month, currentTime.Day, 12, 45, 0);
TimeSpan period = new TimeSpan(1,0,0,0); // days, hours, minutes, seconds
// or you could use @Mat's suggestion and say = TimeSpan.FromDays(1.0);
TimeSpan initialInterval;
if (currentTime <= scheduleTime)
{
initialInterval = scheduleTime.Subtract(currentTime);
}
else
{
initialInterval = scheduleTime.AddDays(1).Subtract(currentTime);
}
dailyWakeupCall = new Timer(_timerElapsed, null, initialInterval, period);
}
void _timer_Elapsed(object state)
{
StartTaskWork();
}
}
اولا
initialInterval = scheduleTime.Subtract(currentTime);
چیکار میکنه ؟
دوم :
dailyWakeupCall = new Timer(_timerElapsed, null, initialInterval, period);
این چیکار میکنه . البته
_timerElapsed نمیدونم چیه خطا میده.
ممنون