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

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

کاربر سایت

مهدی الهی

عضویت از 1396/07/29

Hosted Service در .Net Core

  • دوشنبه 29 بهمن 1397
  • 13:36
تشکر میکنم

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

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

محمد اردوخانی

عضویت از 1396/05/17

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

کاربرانی که از این پست تشکر کرده اند taraneh273

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)