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

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

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

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

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید