public AsyncGet ( MemBlock key, Channel returns ) : void | ||
key | MemBlock | |
returns | Channel | |
return | void |
override public void Start() { Channel returns = new Channel(); returns.EnqueueEvent += delegate(object o, EventArgs ea) { while(returns.Count > 0) { Hashtable result = null; try { result = returns.Dequeue() as Hashtable; } catch { continue; } byte[] res = result["value"] as byte[]; if(res != null) { Results.Enqueue(MemBlock.Reference(res)); } } if(_enqueue != null) { _enqueue(this, EventArgs.Empty); } }; returns.CloseEvent += delegate(object o, EventArgs ea) { Finished(); }; Dht dht = new Dht(Node, 3, 20); dht.AsyncGet(Key, returns); }