示例#1
0
        protected override void Work()
        {
            while (true)
            {
                EntityMessage   message   = null;
                EntityException exception = null;
                lock (queueMessage)
                {
                    if (queueMessage.Count > 0)
                    {
                        message = queueMessage.Dequeue();
                    }
                }

                if (message != null)
                {
                    SendMessageToDb(message);
                }

                lock (queueException)
                {
                    if (queueException.Count > 0)
                    {
                        exception = queueException.Dequeue();
                    }
                }
                if (exception != null)
                {
                    SendExceptionToDb(exception);
                }
                if (_state.IsDoneReading && _state.IsDoneWorkers && queueMessage.Count == 0 && queueException.Count == 0)
                {
                    _state.IsDoneWriting = true;
                    break;
                }
            }
        }
示例#2
0
        private void SendMessageToDb(EntityMessage message)
        {
            ISqlInsert sqlInsert = new SqlInsert(_connectionString);

            sqlInsert.InsertFileHash(message);
        }