Нужно прочитать построчно текст из файла и передать в функцию которая выполняется в другом потоке
Категория: .NET
2011-09-05 23:41:33
В этом примере при каждом проходе создаётся новый набор потоков, все они запускаются и работают действительно параллельно. Затем все потоки синхронизируются и начинается следующая итерация считывания.
code: #csharp
- public void Read()
- {
- using (StreamReader reader = new StreamReader("SomeFile.txt"))
- {
- // Количество строк, которые необходимо считать из файла за один проход.
- int domainCount = 5;
- while (reader.Peek() >= 0)
- {
- // Массив строк, которые будут считаны за один проход.
- string[] domains = new string[domainCount];
- // Считать domainCount строк из файла.
- for (int i = 0; i < domainCount; i++)
- domains[i] = reader.ReadLine().Trim();
- // Массив потоков, которые будем запускать при каждом проходе.
- Thread[] threads = new Thread[domainCount];
- // Инициализировать массив потоков и одновременно запускать потоки.
- for (int i = 0; i < threads.Length; i++)
- {
- threads[i] = new Thread(new ParameterizedThreadStart(SomeMethod));
- threads[i].Start(domains[i]);
- }
- // Синхронизируем запущенные потоки.
- foreach (Thread thread in threads)
- thread.Join();
- }
- }
- }
Поделиться: