public void EnterBlock(Action <ILogMessageSink> executeBlock)
        {
            BlockSink blockSink = new BlockSink(this);

            executeBlock(blockSink);

            lock (LockPoint)
            {
                blockSink.Flush();
            }
        }
        public void EnterBlock(Action <ILogMessageSink> executeBlock)
        {
            BlockSink blockSink = new BlockSink(this);

            executeBlock(blockSink);

            // lock all access to message while a block is being applied. (bulk lock)
            lock (LockPoint)
            {
                blockSink.Flush();
            }
        }