private AsyncRequestState RemoveRequest(IAsyncResult result, uint requestId, uint typeId)
{
lock (m_outstandingRequests)
{
for (LinkedListNode<AsyncRequestState> ii = m_outstandingRequests.First; ii != null; ii = ii.Next)
{
if (Object.ReferenceEquals(result, ii.Value.Result) || (requestId == ii.Value.RequestId && typeId == ii.Value.RequestTypeId))
{
AsyncRequestState state = ii.Value;
m_outstandingRequests.Remove(ii);
return state;
}
}
return null;
}
}