virtual public MemBlock Swap(MemBlock key, MemBlock new_value) { IAsyncResult r = BeginSwap(key, new_value, this.DoNothing, null); r.AsyncWaitHandle.WaitOne(); return EndSwap(r); } private void DoNothing(IAsyncResult r) { }