CancelationToken
только для уведомления о завершении работы, оно используется всеми экземплярами процесса и не может использоваться по другим причинам.
И только для чтения, вы не можете изменить его вручную, так что, возможно, выможет создать новый CancellationTokenSource
и объединить токены в один токен, который будет отменен в случае отмены любого из токенов.
Вот мой код.
public static void ProcessQueueMessage(
[QueueTrigger("queue2")] string message,
ILogger logger, CancellationToken token
)
{
CancellationTokenSource tokenSource = new CancellationTokenSource();
string flag;
CancellationTokenSource compositeTokenSource =
CancellationTokenSource.CreateLinkedTokenSource(
tokenSource.Token, token);
if (message.Equals("shutdown"))
{
logger.LogInformation(message);
tokenSource.Cancel();
flag = compositeTokenSource.Token.IsCancellationRequested.ToString();
logger.LogInformation(flag);
}
else {
logger.LogInformation(message);
flag = compositeTokenSource.Token.IsCancellationRequested.ToString();
logger.LogInformation(flag);
}
}
Если сообщение равно"shutdown", будет выполнен метод Cancel()
.Тогда свойство IsCancellationRequested
составного токена будет true
.
Надеюсь, это поможет вам, если у вас все еще есть вопросы, пожалуйста, дайте мне знать.