Первый поток считывает данные из текстового файла. Если считается число, оно передается во 2-й поток, если слово – в 3-й. Второй поток находит максимум и минимум получаемых чисел и выводит эти данные на экран. Третий поток находит слово с максимальным количеством гласных букв и выводит его на экран.
chavarria, Под "потоком" имеется в виду thread или task? В какой момент времени потоки выводят инфу на экран - после обработки каждого нового значения или в конце после того как весь файл прочитан? есть код который ты набросал но в нем что-то не работает или ты хочешь чтобы тебе всё написали?
chavarria, хм, возможно просто это отрабатывается так быстро что просто первый поток отрабатывает еще до того как второй запустится, а второй отрабатывает до того как запустится третий. Если сначала запускать потребителей а потом производителя, то вроде работает как ты хочешь: var consumers = new[] { new Thread(ConsumeNumbers().Wait), new Thread(ConsumeWords().Wait), new Thread(ReadAndPublish().Wait), }; C# var consumers = new[] { new Thread(ConsumeNumbers().Wait), new Thread(ConsumeWords().Wait), new Thread(ReadAndPublish().Wait), };
vtlstolyarov, спасибо еще раз за помощь) Еще вопросик небольшой, если поток, к примеру, не успеет обработать слово, а уже будет новое. Что тогда? Как это работает?