![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| eXa |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Возможно ли запустить ниже приведенный код асинхронно, а что ещё лучше синхронно. Без использования класса TThread и вообще потоков, а как множество отдельных программ взаимодействующих с главнной потоком(формой) Если да, то как?
Вот что программа выводит, время выполнения 9 секнуд
а надо, время выполнения 3 секунды
Это сообщение отредактировал(а) eXa - 15.8.2007, 18:55 |
||||||
|
|||||||
| dumb |
|
||||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 3 Всего: 158 |
есть, конечно, такое слово как fiber, но это еще веселее, чем потоки, так что... разбирайся с потоками. |
||||
|
|||||
| eXa |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
хм... синхронно - одновременно, асинхронно по порядку, в разнобой... Разве что то не так? O_o
С патоками небыло вапросов, но с ними нельзя, ну может всётки наколдует кто нибудь мне эти чудестные строчки над каторыми я уже бюсь около недели Это сообщение отредактировал(а) eXa - 15.8.2007, 20:21 |
||||
|
|||||
| ALeXandrK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 1 Всего: 6 |
А что ты тут вообще собрался выполнять синхронно/асинхронно? У тебя же не несколько методов, а всего один.
Поясни что я тут не понял... И потом ты в процедуре SubDelay запускаешь Application.ProcessMessages, что ведет к неопределенным задержкам - ну кто знает сколько там будут обрабатываться незнамо какие сообщения? Есть спец средства, которые позволяют определять сколько выполняется по времени тот или иной участок кода. Ты бы прогнал посмотрел - что у тебя затягивает процесс, но для начала убери Application.ProcessMessages может тебе это даст прирост во времени. P.s.: может смысл слов синхронно/асинхронно ты и понимаешь, но как все это дело завязанно с компьютером ты видишь с трудом. Это сообщение отредактировал(а) ALeXandrK - 15.8.2007, 20:53 -------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
|||
|
||||
| eXa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Допустим у меня есть однопоточная программа, я делаю n'ое количество её экземпляров и "скармливаю" ей через форму разные данные для обработки, метод их обработки ессно один. Вот что мне требуется только в атоматизированом варианте.Ну а SubDelay обычный таймер, каторый можно заменить sleep'ом что лучше не будет, можно конешно воспользоваться сторонними таймерами... Вообщем это процедура не важна.
Это сообщение отредактировал(а) eXa - 16.8.2007, 02:49 |
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 7 Всего: 38 |
Это и есть потоки. Объясни нормально, что ты хочешь в итоге получить. -------------------- ![]() |
|||
|
||||
| eXa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Я объяснил вполне даходчиво что мне надо
|
|||
|
||||
| aktuba |
|
||||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 7 Всего: 38 |
Да нет... Например
С помощью потоков или отдельных файлов никак не сделаешь, т.к. необходимо отслеживать действие каждого из поток/файлов и вовремя(!!!) приостанавливать/продолжать действие каждого потока/файла. Иначе не угадаешь у какого потока/файла процедура сработает раньше/позже. А кроме этого отдельное приложение вообще может вылететь с ошибкой, зависнуть и т.д. Что в этом случае делать остальным экземплярам? -------------------- ![]() |
||||
|
|||||
| eXa |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Если отдельный экземпляр вылетает с ошибкой, то он просто прекращает сваю работу, в случии зависания незнаю что может случиться... ------------------------------------- Вот помагли с кодесами, но вот незадача, в Application.ProcessMessages вызванный из SubDelay должен был сгенерировать переход к TMForm.WMMyFake, но этова почемут не происходит...
Это сообщение отредактировал(а) eXa - 17.8.2007, 17:07 |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |