|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.11.2010, 14:53 | #1 |
Регистрация: 30.10.2010
Сообщений: 5
|
Вопрос по TThread
Добрый день!
Пытаюсь для ускорения вычислений независимые друг от друга расчеты произвести в разных потока, рассчитывая на выигрыш за счет многоядерности процессора. Вот что я написал: Код:
Спасибо Последний раз редактировалось Федеор; 14.11.2010 в 15:49. |
14.11.2010, 15:12 | #2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Думаю да, правда какой то запуск замысловатый.
|
14.11.2010, 15:44 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
где создание потоков?
что за вызов Execute?(этот метод выполняет поток, вы его вообще вызывать не должны) Resume поидее достаточно(если поток был создан через TThread.Create(True)) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
14.11.2010, 15:45 | #4 | |
Регистрация: 30.10.2010
Сообщений: 5
|
После создания потока я его не сразу запускаю, т.к. не готовы некоторые исходные данные, необходимые для расчетов внутри потока.
Поэтому я сначала создаю приостановленный поток, получаю исходные данные, после чего я его возобновляю и запускаю Exeсute. Может быть я что-то неправильно понимаю? Цитата:
Код:
UP понял в чем дело: мне необходимо, чтобы на каждой итерации расчета в уже запущенном потоке выполнялся код, описанный в Execute. Поэтому я его вручную поместил в итерационный цикл. Последний раз редактировалось Stilet; 14.11.2010 в 16:09. |
|
14.11.2010, 16:12 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Может тебе нужно поместить цикл в потоки?
I'm learning to live...
|
|
14.11.2010, 16:41 | #6 |
Регистрация: 30.10.2010
Сообщений: 5
|
понял, так мне и нужно сделать
и еще вопрос - у меня есть общий цикл с вложенными циклами вложенные циклы я хочу выполнять в отдельных потоках возможно ли создать поток для выполнения этого вложенного цикла только один раз? (чтобы на каждой итерации главного цикла не создавать/уничтожать потоки) |
14.11.2010, 16:52 | #7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
М.м.м по-моему можно.
Создай один раз, а потом запускай его много раз, но... Ты учти - если поток в цикле запустишь, то он не приостановит цикл, который пойдет на следующую итерацию. Не стоит разрывать циклы так.
I'm learning to live...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с TThread | pesi | Общие вопросы Delphi | 2 | 09.08.2010 14:12 |
TThread в С++ Builder | alun | C++ Builder | 7 | 02.06.2010 21:55 |
TThread | Vladislav_I | Общие вопросы Delphi | 0 | 30.04.2010 19:47 |
TThread в Дельфи | ImmortalAlexSan | Помощь студентам | 2 | 23.04.2010 16:24 |
TThread и GUI | Freezer | Общие вопросы Delphi | 8 | 05.08.2009 11:50 |