Запуск Task'a с определенным периодом

247
10 апреля 2017, 03:57

Возможно ли сделать так, чтобы Task выполнял функцию раз в минуту. Если да, то как. Понятно, что есть другие , возможно, более удобные или более подходящие для этого средства, как тот же таймер, но все же интересно

Answer 1

Судя по всему, вы хотите это:

async Task RepeatEvery(TimeSpan ts, Action action)
{
    while (true)
    {
        var wait = Task.Delay(ts);
        action();
        await wait;
    }
}

Если action — «длинная» функция, возможно, её стоит выгрузить в пул потоков через await Task.Run(action).

READ ALSO
C# кнопки событие по движению мыши

C# кнопки событие по движению мыши

Задача нажать клавишей мыши на кнопку и не отпуская протянуть по 10м другим кнопкам которые рядом находятсяДелаю обработку по собитию MouseDown...

248
Скрыть панель при нажатии за пределами этой панели

Скрыть панель при нажатии за пределами этой панели

Panel1 по умолчанию скрыта и открывается по нажатию на buttonНужно чтобы она закрывалась сама если пользователь нажмет в любом месте, кроме самой...

197
Ошибка при создании XML файла в Unity3D

Ошибка при создании XML файла в Unity3D

Я имею ошибки и из-за нее не создается файл сохранения

316
Aforge.net работа с потоком видео

Aforge.net работа с потоком видео

в программе камера должна отображать всё происходящее в режиме онлайн без записи информации, для этого использую библиотеки AForgeVideo и AForge

356