public Pool(ITask task) { _task = task; _errors = new BlockingSortQueue <Exception>(Environment.ProcessorCount); _threads = new List <Thread>(); _tokenSource = new CancellationTokenSource(); _token = _tokenSource.Token; }
public void Open(string path, ManualResetEvent endReadEvent) { _tokenSource = new CancellationTokenSource(); _token = _tokenSource.Token; _queue = new BlockingSortQueue <IChunk>(10, new ChunkComparer()); _endEvent = endReadEvent; _worker = new Thread(() => FileReader(path)) { IsBackground = true }; _worker.Start(); }
public void Open(string path, ManualResetEvent endWriteEvent) { if (endWriteEvent == null) { throw new ArgumentNullException("Ссылка на объект endWriteEvent не указывает на экземпляр объекта. Функция FileBlockWriter.Open"); } _tokenSource = new CancellationTokenSource(); _token = _tokenSource.Token; _queue = new BlockingSortQueue <IChunk>(Environment.ProcessorCount * 20, new ChunkComparer()); _endEvent = endWriteEvent; _worker = new Thread(() => FileWriter(path)) { IsBackground = true }; _worker.Start(); }