Я использую маркер отмены, который передается, так что моя служба может быть отключена чисто. У службы есть логика, которая пытается подключиться к другим службам, поэтому токен - хороший способ вырваться из этих циклов повтора, запущенных в отдельных потоках. Моя проблема в том, что мне нужно сделать вызов службе, которая имеет внутреннюю логику повтора, но вернуться после заданного периода, если попытка повтора не выполнена. Я хотел бы создать новый токен отмены с тайм-аутом, который сделает это для меня. Проблема заключается в том, что мой новый токен не связан с маркером "master", поэтому, когда главный токен отменен, мой новый токен будет по-прежнему оставаться в живых до тех пор, пока не истечет время ожидания или не будет создано соединение, и оно будет возвращено. То, что я хотел бы сделать, - это связать два токена вместе, так что, когда главный будет отменен, новый будет отменен. Я попытался использовать метод CancellationTokenSource.CreateLinkedTokenSource
, но когда мой новый токен тайм-аута, он также отменил мастер-токен. Есть ли способ делать то, что мне нужно делать с токенами, или потребует изменений в логике повтора (возможно, это не будет легко)
Вот что я хочу сделать:
Мастер-токен - передал различные функции, чтобы служба могла отключиться. Временный токен - передается на одну функцию и устанавливается на тайм-аут через одну минуту
Если мастер-токен отменен, временный токен также должен быть отменен.
Когда срок действия временного токена истекает, он НЕ должен отменять мастер-токен.