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);
}