Ich habe folgendes Muster vor kurzem bemerkt, aber ich weiß nicht ganz die Nutzung der completedSynchronously Eigenschaft erfassen:AsyncCallback completedSynchronously
IAsyncResult channelOpenResult = channel.BeginOpen(new AsyncCallback(OnOpenCompleteChannel), channel);
if (channelOpenResult.CompletedSynchronously)
{
CompleteOpenChannel(channelOpenResult);
}
Und dann wieder, in dem Rückruf:
void OnOpenCompleteChannel(IAsyncResult result)
{
if (result.CompletedSynchronously)
return;
else
CompleteOpenChannel(result);
}
Und irgendwo im Code steht natürlich eine Funktion:
void CompleteOpenChannel(IAsyncResult result) ...
Ist das ein Weg zur handl e der asynchrone Aufruf unterschiedlich abhängig davon, ob er direkt abschließt oder nicht? Aber warum sollte es in diesem Fall verwendet werden, da der AsyncCallback immer aufgerufen wird (oder?)? Kann jemand ein Beispiel geben, wo der Anruf synchron erfolgt?