Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-17949
stupid
2002-05-27 18:35
2002.06.06
Защита файла от распаковки.


7-18159
heruvim4ik
2002-03-09 22:40
2002.06.06
Как программно отключить монитор?


3-17829
Glonia Zbanov
2002-05-16 17:56
2002.06.06
Поиск в гриде-DBGridEh


1-17915
AL2002
2002-05-27 16:49
2002.06.06
Реестр. Добавление строковых параметров


14-18133
Феликс
2002-05-01 14:03
2002.06.06
Физ. нормативы?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский