powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запуск по таймеру не более одной Task
9 сообщений из 34, страница 2 из 2
Запуск по таймеру не более одной Task
    #39554114
Евгенич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TА если так написать:
Код: c#
1.
            if (tsk == null || tsk.IsCompleted) ...



Ваш способ тоже работает. Поэтому теперь дилемма:
что авторитетнее сообщит об окончании выполнения метода work - bool флаг или свойство isCompleted?
...
Рейтинг: 0 / 0
Запуск по таймеру не более одной Task
    #39554120
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгеничокончании выполнения метода work - bool флаг или свойство isCompleted?
Смотря как напишите.
...
Рейтинг: 0 / 0
Запуск по таймеру не более одной Task
    #39554350
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно для таких целей таймер не использую, делаю примерно так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
void Work() {
  try {
    ...//полезный код
  } finally {
    var timespan = ...//иногда нужно "вычислять", но в данном случае можно просто TimeSpan.From...
    ThreadPool.RegisterWaitForSingleObject(new AutoResetEvent(false), delegate { Work(); }, null, timespan, true);
  }
}
...
Рейтинг: 0 / 0
Запуск по таймеру не более одной Task
    #39554380
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LR,
Тут в одной строке 8 сложных для новичка понятий.
Понятно, слово Таймер из детства буде в фаворе.
...
Рейтинг: 0 / 0
Запуск по таймеру не более одной Task
    #39554388
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
вместо ThreadPool.RegisterWaitForSingleObject можна использовать тот же Task, тут важно понятное и новичку "finally" вместо таймера
...
Рейтинг: 0 / 0
Запуск по таймеру не более одной Task
    #39554414
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LR,
Ну значит я не врубаюсь в ваш пример. Ок.
...
Рейтинг: 0 / 0
Запуск по таймеру не более одной Task
    #39554437
Евгенич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRОбычно для таких целей таймер не использую, делаю примерно так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
void Work() {
  try {
    ...//полезный код
  } finally {
    var timespan = ...//иногда нужно "вычислять", но в данном случае можно просто TimeSpan.From...
    ThreadPool.RegisterWaitForSingleObject(new AutoResetEvent(false), delegate { Work(); }, null, timespan, true);
  }
}



Тоже вариант. В Delphi WaitForSingleObject тоже кажись было.
...
Рейтинг: 0 / 0
Запуск по таймеру не более одной Task
    #39554442
Евгенич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaitForSingleObject точно использовал в Delphi для предотвращения запуска нескольких копий приложений. Всем спасибо!
...
Рейтинг: 0 / 0
Запуск по таймеру не более одной Task
    #39554450
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгеничWaitForSingleObject точно использовал в Delphi для предотвращения запуска нескольких копий приложений. Всем спасибо!
Достаточно редко. И к потокам отношение не имеет.
Обычно стремятся несколько экземпляров запускать.
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запуск по таймеру не более одной Task
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]