Загрузка...

Задача на потоки C#

Тема в разделе C# создана пользователем chavarria 2 дек 2022. 291 просмотр

  1. chavarria
    chavarria Автор темы 2 дек 2022 </> Python разработка - /threads/6461606 522 17 мар 2018
    Первый поток считывает данные из текстового файла. Если считается число, оно передается во 2-й поток, если слово – в 3-й. Второй поток находит максимум и минимум получаемых чисел и выводит эти данные на экран. Третий поток находит слово с максимальным количеством гласных букв и выводит его на экран.
     
  2. vtlstolyarov
    vtlstolyarov 3 дек 2022 468 8 янв 2022
    chavarria, Под "потоком" имеется в виду thread или task? В какой момент времени потоки выводят инфу на экран - после обработки каждого нового значения или в конце после того как весь файл прочитан? есть код который ты набросал но в нем что-то не работает или ты хочешь чтобы тебе всё написали?
     
    1. Посмотреть предыдущие комментарии (12)
    2. vtlstolyarov
      chavarria, хм, возможно просто это отрабатывается так быстро что просто первый поток отрабатывает еще до того как второй запустится, а второй отрабатывает до того как запустится третий.

      Если сначала запускать потребителей а потом производителя, то вроде работает как ты хочешь:
      C#
      var consumers = new[]
      {
      new Thread(ConsumeNumbers().Wait),
      new Thread(ConsumeWords().Wait),
      new Thread(ReadAndPublish().Wait),
      };
      [IMG]
    3. chavarria Автор темы
      vtlstolyarov, спасибо еще раз за помощь) Еще вопросик небольшой, если поток, к примеру, не успеет обработать слово, а уже будет новое. Что тогда? Как это работает?
    4. vtlstolyarov
      chavarria, ничего - оно будет ждать в канале пока его не возьмут в обработку
    5. Посмотреть следующие комментарии (10)
Top
Загрузка...