he notado el siguiente patrón hace poco, pero no abarcar en su totalidad el uso de la propiedad completedSynchronously:AsyncCallback completedSynchronously
IAsyncResult channelOpenResult = channel.BeginOpen(new AsyncCallback(OnOpenCompleteChannel), channel);
if (channelOpenResult.CompletedSynchronously)
{
CompleteOpenChannel(channelOpenResult);
}
Y, de nuevo, en la devolución de llamada:
void OnOpenCompleteChannel(IAsyncResult result)
{
if (result.CompletedSynchronously)
return;
else
CompleteOpenChannel(result);
}
Y en algún lugar del código existe, por supuesto, una función:
void CompleteOpenChannel(IAsyncResult result) ...
¿Es esta una manera de handl ¿La llamada asincrónica es diferente dependiendo de si se completa directamente o no? Pero ¿por qué usarlo en este caso, ya que el AsyncCallback siempre se llamará (¿lo hará?)? ¿Podría alguien dar un ejemplo en el que la llamada se realiza de forma síncrona?