Форум: "Основная";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
ВнизПро многопоточность Найти похожие ветки
← →
Yuraz (2002-05-27 19:48) [0]Пишу программы без неё самой, но вот дописал, и хотелось бы сделать вычисления прозрачными, т.е. фоновыми, которые иногда достигают 5 и более секунд. (Без неё, эти 5 сек. прога не прорисовывает форму и т.п.) Хотелось бы узнать, когда пишешь программу, МП надо всегда в голове держать, и сразу начинать что то делать с ней, потом от этого "плясать" в сторону что надо программе, постепенно дорабатывая интерфейс, добавляя функции?
Или сначала пишешь просто (без МП), заканчиваешь, оформляешь, пытаешься добавить многопоточность (с чем я сейчас и столкнулся). И в результате что то не получается, очень много делаю обращений к визуальным компанентам(в основном tMemo, tEdit..., PS, не с графикой), что в МП надо синхронизировать, что очень сложно.
Может кто объяснит основные правила построений МП приложений? Что первое, что второе в разработке программы? Если что не ясно в моём вопросе, завтра попытаюсь конкретизировать, заранее всем спасибо.
← →
eSKey (2002-05-27 20:03) [1]вычисления (математику) выносить в отдельный поток безопасно. Обращение к визуальным компонентам надо делать в контексте основного потока - либо через synchronize, либо например заводишь на форме таймер и в основном потоке каждые № миллисекунд читаешь данные и обновляешь форму. Тогда еще нужен флаг на предмет того, что данные сейчас можно считывать.
← →
Yuraz (2002-05-27 20:18) [2]Про математику ясно, тогда далее выяснить, с чего начинать разрабатывать, с МП+добавления или с простого, но законченного приложения с последующем добавлении МП?
С таймером это иммитация МП?
← →
eSKey (2002-05-27 20:39) [3]Таймер я предложил для того, если ты хочешь в основном потоке отображать некий прогресс вычислений. А иначе просто вешаешь на thread.onterminate метод, который твои результаты выведет на форму и все - форма не будет "подвисать", а через "5 секунд" на ней будут результаты.
Что касается когда добавлять МП - лучше конечно сразу задумывать, но если все по процедурам раскидано нормально, то многопоточность можно именно добавить, вызывая нужные процедуры в новой нити (ну и правила те же, насчет компонент).
← →
NailS (2002-05-28 12:34) [4]При проектировании приложения не "от кнопочек" распараллеливание кода можно провести довольно безболезнено.
Много чего интересного можно подчерпнуть отсюда
http://www.tomsk.net/2q/gurin/gala.html
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c