示例#1
0
        // Public Methods (4) 

        /// <summary>
        /// Fügt einen Logger zur asynchronen Ausführung der Instanz in <see cref="ModuleShell.Logger" /> hinzu.
        /// </summary>
        /// <param name="logger">Der Logger, der hinzugefügt werden soll.</param>
        /// <returns>Diese Instanz.</returns>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="logger" /> ist <see langword="null" />.
        /// </exception>
        public ModuleShell AddAsyncLogger(ILoggerFacade logger)
        {
            logger.ThrowIfParamIsNull(() => logger);

            lock (this._SYNC_ROOT)
            {
                this.ThrowIfDisposed();
                this.ThrowIfNotInitialized();

                this.Logger
                .Add(new TaskLogger(innerLogger: logger,
                                    isThreadSafe: false));
            }

            return(this);
        }