Вниз
Скачать: CL | DM;

threads   Найти похожие ветки 

 
oleggar ©   (2005-12-16 12:30) [0]

мне понадобилось в Делфи написать многопоточное приложение .Все работает ,я только не пойму одного из-за разночтений в документации -что нужно выносить в синхронизационную процедуру,так что потом вызывается через synhronize ? все процедуры отрисовки ,все процедуры ,обращающиеся к VCL ,например tsocketserver ,или все обращения к компонентам ,и VCL и не VCL ,которые авторы
объявили в документации "not thread-safe" ?и еще .Если я запускаю synchonize в процедуре Execute потока ,цикл в execute продолжается мгновенно ,или когда синхропроцедура отработает ?и последнее.может ли быть в потоке несколько синхропроцедур и можно ли их запускать через 2 synhronize так
procedure execute
begin

repeat
a:=a+1;

synhronize(1proc);
synhronize(2proc)

until 1=2;

end;


 
Digitman ©   (2005-12-16 12:39) [1]

в Synchronize() следует выносить , прежде всего, те обращения к визуальным VCL-объектам, которые ведут к модификации канвы

туда же можно (но необязательно нужно, а порой и вредно) вынести обращения к прочим объектам, не допускающим одновременный доступ со стороны более чем одного код.потока


 
oleggar ©   (2005-12-16 12:47) [2]

верю .рискну так сделать .а ты много многопоточных приложений больших ,а не учебных сделал ?для меня это второе ,1 еще работает .но оно было проще ,а это вообще огромное


 
Alexander Panov ©   (2005-12-16 13:49) [3]

oleggar ©   (16.12.05 12:47) [2]
верю .рискну так сделать .а ты много многопоточных приложений больших ,а не учебных сделал ?для меня это второе ,1 еще работает .но оно было проще ,а это вообще огромное


Прими за правило - код, использующий общие для разных потоков объекты, защищать критическими секциями.


 
Digitman ©   (2005-12-16 13:52) [4]


> а ты много многопоточных приложений больших ,а не учебных
> сделал ?


А это имеет отношение к твоему делу ?

Думаю - нет.

Сколько бы их ни было (у тебя или у меня), подход д.б. один - прежде чем сотворять задуманое, нужно внимательнейшим образом проштудировать справку (лучше - MSDN) и подкрепить/опровергнуть свои предположения по логике работы TThread детальным изучением соотв.фрагментов исх.кода этого класса



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
9-1123498084
Дюша
2005-08-08 14:48
2006.01.22
OpenGl в Delphi


4-1131705864
Eraser
2005-11-11 13:44
2006.01.22
Разрешения в winNT/2K/XP


2-1135979978
Giga
2005-12-31 00:59
2006.01.22
Помогите разобраться с Memo


14-1135434810
Nic
2005-12-24 17:33
2006.01.22
Как поставить поверх WinME...


14-1135500103
TUser
2005-12-25 11:41
2006.01.22
Давно возникло мнение




   Наверх