¿Cómo debo estructurar el try/finally cuando uso un SemaphorSlim con token de cancelación para que OperationCancelledException se maneje correctamente? En la Opción A, cancelar la fuente del token arroja OperationCancelledException pero no llama a Release(). En la Opción B, cancelar la fuente del token arroja OperationCancelledException y DOES llama a Release().SemaphoreSlim.Wait (CancellationToken) try/finally adecuado para OperationCancelledException?
// option A:
_semaphorSlim.Wait(_cancellationTokenSource.Token);
try
{
// do work here
}
finally
{
_semaphorSlim.Release();
}
// option B:
try
{
_semaphorSlim.Wait(_cancellationTokenSource.Token);
// do work here
}
finally
{
_semaphorSlim.Release();
}
¡muy apreciado! gracias por el enlace también! – SFun28