public static Thread ReadSynchronized(FileQuery query) { SemaphoreService.Wait(instance.semaphore); var task = new Thread(ReadText); task.Start(query); return(task); }
private static void ReadText(object param) { var query = param as FileQuery; using (var reader = new StreamReader(query.Path)) { while (!reader.EndOfStream) { query.Output.Add(reader.ReadLine()); } } SemaphoreService.Release(instance.semaphore); }
public void Dispose() { SemaphoreService.Close(semaphore); }
private FileReader() { semaphore = SemaphoreService.Create(Guid.NewGuid().ToString(), ThreadCapacity); }
public void CreateSemaphore() { semaphoreService = GetService(0, 5, 10, 10); semaphoreService.CreateSemaphore(); // TODO }