public void RegisterTask(RpcTask task) { lock (lck) { UncompleteSet.Add(task); UncompleteTasks[task.Id] = task; } }
private void ProcessCompleteTask(RpcTask task) { lock (lck) { UncompleteSet.Remove(task); UncompleteTasks.Remove(task.Id); task.CompleteWaiter.Set(); } }
public RpcTask Send(uint packetId, RpcTask task) { if (task.ExpireDate < DateTime.Now) { ProcessCompleteTask(task); return(task); } var container = new RpcContainer(task.Rpc.Argument); container.Id = (uint)task.Id; lock (lck) { RpcIds.Add(packetId); } RegisterTask(task); Session.Send(packetId, container); return(task); }