با سلام.
یه برنامه دارم که میخوام هر روز سر ساعت مشخصی کاری رو انجام بده.
قطعه کد زیر رو پیدا کردم قسمتهایی از این کد رو متوجه نمیشم ممنون میشم توضیح بدید:

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 نمیدونم چیه خطا میده.

ممنون