Здравствуйте, Mystic Artifact
Спасибо. Код последнего метода работает. Насколько я понял все дело в том, что надо было не Wait, а await. MA>> 2. В SignalNoServer v.Wait(ct) — бросает исключение при отмене...
Метод с v.Wait(ct); не работает и исключение не бросается. MA>> 3. task.Dispose(); — нельзя делать без проверки состояния задачи, иначе получишь опять исключение.
Если код верен, то задача снимается. Т.е. проверку надо делать во время отладки и проверки кода и после, в рабочей версии, проверка не нужна?
А вообще схема правильная решения задачи или можно решить без вызова исключений? Если вместо Task сделать поток, там тоже будет исключение или с потоками код был бы более верным решением?