public Task<BankChestMetadata> EnqueueGetBankChestMetadata(BankChestDataKey key) { Contract.Requires<ObjectDisposedException>(!this.IsDisposed); Contract.Requires<ArgumentException>(key != BankChestDataKey.Invalid); lock (this.workQueueLock) { return this.WorkQueue.EnqueueTask((keyLocal) => { return this.GetBankChestMetadata(keyLocal); }, key); } }