/// <summary>Делает указанный <see cref="IBlockSink" /> потокобезопасным</summary> /// <remarks> /// Использует <see cref="SemaphoreSlim" /> для обеспечения потокобезопасности, блокирует запрашиваемый поток до /// тех пор, пока другой поток не закончит выполнение операции. /// </remarks> public static IBlockSink Locked(this IBlockSink Core) { return(new LockedBlockSinkDecorator(Core)); }
public FileProcessWorkerRepetitiveRoutine(IBlockSource Source, IBlockSink Sink, IProcessor Processor) { _processor = Processor; _sink = Sink; _source = Source; }
public LockedBlockSinkDecorator(IBlockSink Core) { _core = Core; _semaphore = new SemaphoreSlim(1, 1); }