При повторном запуске скрывается то, что, вероятно, является ошибкой пользователя - это может привести к взаимоблокировкам или другим логическим ошибкам (т. Е. - я создаю событие, жду его и запускаю задачу, которая должна сбросить его в какой-то момент - это никогда не происходит, тупик).Обработчики также могут завершиться с ошибкой, если их вызвать дважды за один успешный запуск задачи.
Ничего не делать более или менее одинаково - обработчики готовых действий не могут завершиться ошибкой :), но они вообще не вызываются - ошибкаболее вероятно, если обработчик выполнит необходимую связь с порождающим потоком.
Хуже всего - это может произойти или не произойти, в зависимости от времени.Т.е. задача может все еще выполняться к тому времени, когда пользователь вызывает функцию во второй раз (что вы делаете, кстати?)
Итак, выведите исключение, если состояние задачи не «не запущено»,Пользователь всегда может проверить статус и выполнить необходимую обработку в маловероятном случае, если он ему нужен.