private void PutQueue(SqlMessageQueue sqlmq) { if (sqlmq == null) { return; } if (_distribeCollection.Count > 0) { int index = sqlmq.IdentityID % _distribeCollection.Count; SafedQueue <SqlMessageQueue> msQueue = GetQueue(index); while (msQueue != null && !msQueue.TryEnqueue(sqlmq)) { Thread.Sleep(SleepSeconds); } SetQueue(index, msQueue); } Interlocked.Exchange(ref writeCount, writeCount + 1); //TraceWriteLine(string.Format("写入ID:{0}队列数{1}", sqlmq.IdentityID, writeCount)); }