void RequestBlocks() { List <BlockHeader> requests = new List <BlockHeader>(); mBlockLock.WaitOne(); foreach (Block b in mBlocks) { if (b.mTransactions.Count == 0) { TimeSpan s = DateTime.Now - b.mLastRequestTime; if (s.TotalSeconds > 30) { requests.Add(b.mHeader); b.mLastRequestTime = DateTime.Now; } } } mBlockLock.ReleaseMutex(); if (requests.Count > 0) { mLastNode.RequestBlocks(requests.ToArray()); } }