static private EndFind ( IAsyncResult result ) : List |
||
result | IAsyncResult | |
return | List |
internal static List<LidgrenAvailableSession> EndFind(IAsyncResult result)
{
var availableSessions = new List<LidgrenAvailableSession>();
try
{
var asyncResult = (AsyncResult) result;
result.AsyncWaitHandle.WaitOne();
if (asyncResult.AsyncDelegate is AsynchronousFind)
availableSessions.AddRange(((AsynchronousFind) asyncResult.AsyncDelegate).EndInvoke(result));
}
finally
{
result.AsyncWaitHandle.Close();
}
return availableSessions;
}
private void OnLidgrenSessionsFound(IAsyncResult ar) { var foundSessions = new List <AvailableSession>(LidgrenSession.EndFind(ar)); // cleanup the temp session, this might could be reused. CurrentSession.EndSession(); // not sure if this is needed CurrentSession = null; OnSessionsFound(foundSessions); }