Esempio n. 1
0
 /// <summary>Делает указанный <see cref="IBlockSink" /> потокобезопасным</summary>
 /// <remarks>
 ///     Использует <see cref="SemaphoreSlim" /> для обеспечения потокобезопасности, блокирует запрашиваемый поток до
 ///     тех пор, пока другой поток не закончит выполнение операции.
 /// </remarks>
 public static IBlockSink Locked(this IBlockSink Core)
 {
     return(new LockedBlockSinkDecorator(Core));
 }
Esempio n. 2
0
 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);
 }