Поиск сообщества
Показаны результаты для тегов 'itask'.
Найдено: 1 результат
-
Параллельные вычисления, System.Threading
Alex7wrt опубликовал вопрос в Потоки и распределенные вычисления
В своей старой программе я использовал потоки TThread для параллельного вычисления с помощью всех ядер процессора. Но у меня возникали проблемы с синхронизацией после каждого завершенного потока. Узнал, что существует модуль System.Threading, в котором есть всякие TTask иTParallel. И, что меня заинтересовало, TTask.WaitForAll. Вот только не пойму как это все использовать, В частности, мне нужен вывод на экран информации каждый раз после того, как все потоки завершат свою работу. Например, есть 4-х ядерный процессор. Я создаю 4 потока и каждому из них подсовываю определенную процедуру для выполнения. Мне нужно, чтобы после того, как все потоки закончили вычисления, вывелась информация на экран и они снова начали работать над своими процедурами. И так, пока я не остановлю. Есть метод TTask.WaitForAll, который дожидается выполнения всех потоков TTask, но если после вызова этого метода вставить строку вывода на экран, а затем сразу же снова запустить потоки, то ничего не выводится, программа подвисает, но при этом загрузка процессора ни 100% как должна быть, а где-то 30%. И для чего нужен TParallel, iFuture? Будьте добры, подскажите, кто в теме.- 3 ответа
-
- system.threading
- itask
-
(и ещё 1 )
C тегом: