Загрузка...

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

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

  1. chavarria
    chavarria Автор темы 2 дек 2022 </> Python разработка - /threads/6461606 522 17 мар 2018
    Первый поток считывает данные из текстового файла. Если считается число, оно передается во 2-й поток, если слово – в 3-й. Второй поток находит максимум и минимум получаемых чисел и выводит эти данные на экран. Третий поток находит слово с максимальным количеством гласных букв и выводит его на экран.
     
  2. vtlstolyarov
    vtlstolyarov 3 дек 2022 474 8 янв 2022
    chavarria, Под "потоком" имеется в виду thread или task? В какой момент времени потоки выводят инфу на экран - после обработки каждого нового значения или в конце после того как весь файл прочитан? есть код который ты набросал но в нем что-то не работает или ты хочешь чтобы тебе всё написали?
     
    1. Посмотреть предыдущие комментарии (22)
    2. vtlstolyarov
      chavarria, угу - это я ступил, потоки надо запускать так:
      C#
      var consumers = new[]
      {
      new Thread(() => ConsumeNumbers().Wait()),
      new Thread(() => ConsumeWords().Wait()),
      new Thread(() => ReadAndPublish().Wait()),
      };
    3. chavarria Автор темы
      vtlstolyarov, спасибо. Последний вопрос задам и отстану уже наконец) Почему с консолью все окей работало, а здесь вскрылась эта проблема?
    4. vtlstolyarov
      chavarria, Я точно не уверен, но думаю что проблема в синхронизации контекста - у консольных и WinForms приложений контекст основного потока различается. Фактически без предыдущего фикса, сама обработка очередей велась в основном потоке (используя при этом TaskScheduler) и только ожидание окончания работы происходило в других потоках.
Загрузка...
Top