मैं हाल ही में निम्नलिखित पैटर्न देखा है, लेकिन मैं पूरी तरह से CompletedSynchronously संपत्ति के उपयोग समझ नहीं है: फिर सेAsyncCallBack CompletedSynchronously
IAsyncResult channelOpenResult = channel.BeginOpen(new AsyncCallback(OnOpenCompleteChannel), channel);
if (channelOpenResult.CompletedSynchronously)
{
CompleteOpenChannel(channelOpenResult);
}
और फिर कॉलबैक में,:
void OnOpenCompleteChannel(IAsyncResult result)
{
if (result.CompletedSynchronously)
return;
else
CompleteOpenChannel(result);
}
और कोड में कहीं भी एक समारोह है:
void CompleteOpenChannel(IAsyncResult result) ...
क्या यह हैंडल करने का एक तरीका है एसिंक्रोनस कॉल अलग-अलग निर्भर करता है कि यह सीधे पूर्ण हो या नहीं? लेकिन इस मामले में इसका उपयोग क्यों करें, क्योंकि AsyncCallback हमेशा कहा जाएगा (यह होगा?)? क्या कोई ऐसा उदाहरण दे सकता है जहां कॉल सिंक्रनाइज़ किया गया हो?