コード例 #1
0
ファイル: FileReader.cs プロジェクト: Albarn/white-fang
        public static Thread ReadSynchronized(FileQuery query)
        {
            SemaphoreService.Wait(instance.semaphore);
            var task = new Thread(ReadText);

            task.Start(query);
            return(task);
        }
コード例 #2
0
ファイル: FileReader.cs プロジェクト: Albarn/white-fang
        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);
        }
コード例 #3
0
ファイル: FileReader.cs プロジェクト: Albarn/white-fang
 public void Dispose()
 {
     SemaphoreService.Close(semaphore);
 }
コード例 #4
0
ファイル: FileReader.cs プロジェクト: Albarn/white-fang
 private FileReader()
 {
     semaphore = SemaphoreService.Create(Guid.NewGuid().ToString(), ThreadCapacity);
 }
コード例 #5
0
 public void CreateSemaphore()
 {
     semaphoreService = GetService(0, 5, 10, 10);
     semaphoreService.CreateSemaphore();
     // TODO
 }