سلام
با استفاده از 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 رو قرار بدین که معادل یک روز بر حسب میلی ثانیه است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)