Реализация IHostedService с динамическим параметромC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Реализация IHostedService с динамическим параметром

Сообщение Anonymous »

Я написал функцию, которая создает постоянный таймер для выполнения функции. Например, она вызывает нужную функцию каждую минуту.
Эта функция имеет входной параметр, который является числом, и я хочу создать его динамически. Например, при первом запуске передается ноль, а при каждом последующем к нему добавляется десять единиц.
Это мой класс:

Код: Выделить всё

using Timer = System.Timers.Timer;

public class GetProductsEvent : IHostedService, IDisposable
{
private readonly int _seconds;

private readonly Timer _timer;
private readonly IServiceProvider _serviceProvider;

public GetProductsEvent(IServiceProvider serviceProvider,
EventConfiguration eventConfig)
{
_seconds = eventConfig.SendInvoiceTimer;

_timer = new Timer(GetTimePeriod());
_timer.Elapsed += Timer_Elapsed;

_serviceProvider = serviceProvider;
}

private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
// var wait = DoWork();
// wait.Wait();
DoWork(0);
}

private void DoWork(int startRow)
{
try
{
using var scope = _serviceProvider.CreateScope();
{
IHostWorker worker = scope.ServiceProvider.GetRequiredService();

worker.GetProductsInfo(startRow);
}
}
catch (Exception)
{
// Logging
}

_timer.Interval = GetTimePeriod();
_timer.Start();
}

private double GetTimePeriod()
{
var runTime = DateTime.Now.AddSeconds(_seconds);
return (runTime - DateTime.Now).TotalMilliseconds;
}

public void Dispose()
{
// TODO release managed resources here

_timer.Stop();
_timer?.Dispose();
}

public async Task StartAsync(CancellationToken cancellationToken)
{
_timer.AutoReset = false;
_timer.Start();
}

public async Task StopAsync(CancellationToken cancellationToken)
{
_timer.Stop();
}
}
Желаемая функция — GetProductsInfo, и теперь я не знаю, как изменить значение ее параметра

Подробнее здесь: https://stackoverflow.com/questions/785 ... -parameter
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Реализация IHostedService с динамическим параметром
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как ввести ссылку на конкретный IhostedService в другой (зависимый) iHostedService?
    Anonymous » » в форуме C#
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • Диспетчер IHostedService C# .net6
    Гость » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Гость
  • Как запускать и останавливать задачи в IHostedService
    Anonymous » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как правильно использовать универсальный хост .Net Core без IHostedService?
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»