Загрузка...

Task on C# threads

Thread in C# created by chavarria Dec 2, 2022. 275 views

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