مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

Hosted Service در .Net Core

دوشنبه, 29 بهمن 1397 13:36

Hosted Service در .Net Core

سلام 
با استفاده از 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
            }
        }

ﺳﻪ شنبه, 30 بهمن 1397 10:54

با سلام

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

ارسال پاسخ برای این تاپیک