سلام
با استفاده از Ihosted service میخواهم یه کاری رو ، مثلا هر شب ساعت 11 برای خودم یک ایمیل ارسال بشه
نمیدونم چه طور براش یه ساعت مشخص تعریف کنم در تایمر یعنی همون 11
public Task StartAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("Timed Background Service is starting.");
_timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromDays(1));
return Task.CompletedTask;
}
private void DoWork(object state)
{
using (var scope = _scopeFactory.CreateScope())
{
//Send Mail
}
}
با سلام
به جای TimeSpan.Zero این کد رو قرار بدین
var test4 = (DateTime.Today.AddDays(1).AddHours(23).TimeOfDay.Subtract(DateTime.Now.TimeOfDay)).GetMilisecond();
متد GetMiliSecond ، یک Extension Method هستش به صورت زیر :
public static long GetMilisecond(this TimeSpan time)
{
return time.Hours * 60 * 60 * 1000 + time.Minutes * 60 * 1000 + time.Seconds * 1000 + time.Milliseconds;
}
در نهایت هم به جای TimeSpan.FromDays(1) مقدار 86400000 رو قرار بدین که معادل یک روز بر حسب میلی ثانیه است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)