/// <summary> /// 存储过程 /// </summary> private void ProcStore() { while (true) { if (blockReceivedEvent.WaitOne()) { IDataProcessBlock block = null; lock (((ICollection)queueDataBlock).SyncRoot) { if (this.queueDataBlock.Count > 0) { block = queueDataBlock.Dequeue(); } else { blockReceivedEvent.Reset(); } } if (block != null) { bool goon = block.Process(); if (!goon) { break; } } } } }
public void PutDataBlock(IDataProcessBlock block) { lock (((ICollection)queueDataBlock).SyncRoot) { queueDataBlock.Enqueue(block); blockReceivedEvent.Set(); } }
public void AddBlock(IDataProcessBlock blk) { lock (((ICollection)queueBlock).SyncRoot) { if (queueBlock.Count > 1000) { queueBlock.Dequeue(); } queueBlock.Enqueue(blk); eventBlk.Set(); } }