Попробуйте/поймать/наконец очистить для задач, которые не ожидаются ⇐ C#

Место общения программистов C#
Anonymous
Попробуйте/поймать/наконец очистить для задач, которые не ожидаются

Сообщение Anonymous »

Код: Выделить всё

public async Task Handle(HttpContext httpContext, WebSocket socket)
{
using var cts = CancellationTokenSource.CreateLinkedTokenSource(httpContext.RequestAborted)

try
{
var readTask = Run(socket, cts.Token);
var writeTask = Run2(socket, cts.Token);

DoSomeNonAsyncWork(cts.Token); // if this throws
await MaybeSomeOtherAsyncWork(cts.Token); // or if this throws

await Task.WhenAny(readTask,writeTask); // before this, what cleanup do i need to do?
}
catch(Exception ex)
{

}
finally
{
await cts.CancelAsync();
}
}
< /code>
Есть ли что -нибудь, что мне нужно, наконец, обратиться? Что происходит с задачами, которые не ожидаются? Я чувствую, что я обращаюсь к сценарии «не ожидается» здесь с помощью CancellationTokenSource 
, но если я не делал cts.cancelasync () , наконец, остальные будут работать только до того, как я не буду исчезнуть в фоновом режиме, и если да, на какое влияние? Наконец -то?


Подробнее здесь: https://stackoverflow.com/questions/796 ... ot-awaited

Вернуться в «C#»