0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 9
1

Многопоточное программирование

24.10.2017, 11:52. Показов 1285. Ответов 1
Метки нет (Все метки)

Здравствуйте, читал литературу по C# с целью разобраться как сделать многопоточную программу, но намешал каши в голове. Не могли бы вы ответить на следующие вопросы?
Предположим, я создаю приложение WinForms для вывода на экран результата работы одного метода. Метод с помощью цикла последовательно изменяет цвет пяти PictureBox в зависимости от переменной цикла. Без создания дополнительного потока цвет боксов изменяется только после выполнения всего цикла, то есть одновременно. То есть, необходимо создать новый поток для этого метода.
1) Создать поток командой new Thread(...) или с помощью Task? Есть ли отличие между Thread и Task или по сути это одно и то же?
2) Как именно работает Thread? Он направляет разные ветви приложения различным ядрам процессора или периодически "притормаживает" одну из ветвей, чтобы дать ресурсы процессора другой?
3) В дальнейшем возникнет необходимость обработать большую коллекцию List<T> в исполняемом методе, я предполагал сделать это с помощью параллельного For(). Нужно ли как-то ограничивать выполнение основной графической формы для выделения ресурсов на обработку For()?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2017, 11:52
Ответы с готовыми решениями:

Многопоточное программирование
Программа выполняется в одном потоке. Есть три обработчика событий. Как сделать так, чтобы каждый...

Асинхронное vs. Многопоточное программирование
Здравствуйте. Изучая темы многопоточности и асинхронного программирования, у меня возник вопрос. В...

Что такое многопоточное программирование?
Здравствуйте, а можете пожалуйста объяснить чайнику что такое многопоточное программирование, если...

Многопоточное программирование по Шилдту: разобрать код
Друзья, у меня вопрос от новичка. Читаю книгу Шилдта и вот дошёл до главы многопоточного...

1
2 / 2 / 0
Регистрация: 23.09.2008
Сообщений: 54
24.10.2017, 15:26 2
Цитата Сообщение от BlauWave Посмотреть сообщение
Создать поток командой new Thread(...) или с помощью Task? Есть ли отличие между Thread и Task или по сути это одно и то же?
Цитата из stackoverflow "Thread представляет собой физический, системный поток выполнения (за исключением SQL Server под .NET 2.0, да). А Task — это штука, которая по сути перепрыгивает из потока в поток, а зачастую и вовсе не находится ни в каком потоке! В результате у вас может быть всего 10 активных потоков, но тысячи Task'ов.

Например, если вы делаете await на операцию чтения из сети, то он время ожидания прихода ответа от сервера ваша асинхронная функция вовсе не занимает никакого потока, а существует в спящем виде как обыкновенный объект где-то в памяти. Когда ответ реально приходит, функция находит какой-то поток (при обычных условиях это главный поток, но может быть и какой-то посторонний, если вы попросите), и продолжает выполнение на нём дальше.
"
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2017, 15:26
Помогаю со студенческими работами здесь

Многопоточное
Добрый день, есть код не свой, раскидал в него вывод текста с информацией о потоке. Только изучаю...

Многопоточное скачивание
Помогите.Как сделать многопоточное скачивание файлов? using System; using...

Многопоточное приложение
Требуется разработать многопоточное приложение (в качестве средства разработки следует использовать...

многопоточное вычисление
Как организовать многопоточное вычисление функции (x+5)^(2/3) + abs(x+2)^2 - ln(5*tg(x)) -...

Многопоточное сжатие файла
Здравствуйте. Есть задача: при помощи System.IO.Compression.GZipStream сжимать файлы. Программа...

Многопоточное копирование файлов
Пишу небольшую утилитку, которая собой представляет грабер флешки. На данный момент сделал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru