Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.22;
Скачать: CL | DM;

Вниз

Сколько потоков ??   Найти похожие ветки 

 
y-soft ©   (2003-08-27 18:32) [40]

>panov © (27.08.03 16:23) [39]
>>y-soft © (27.08.03 15:54) [38]

уточню все-таки-)
InterlockedExchange во всех версиях Win есть не ниже W95.


Устыдил:))


 
Прохожий ©   (2003-08-28 07:42) [41]

Всем спасибо за консультацию! Сегодня попробую...


 
Palladin ©   (2003-09-01 15:02) [42]


> Camus © (26.08.03 16:11) [31]

Угу, то есть, если мы вызовем при удалении TThreadList.Lock и начнем удалять из потокозащищенного списка элемент, а в это время "откуда угодно (даже извне, например из хука или из другой программы) вызывается SendMessage с хэндлом любой формы или оконного контрола нашей программы. Соответственно, удаление N-го элемента приостанавливается, происходит прямой вызов оконной процедуры этой формы или контрола и возбуждается соответствующее событие, на которое повешен обработчик, а в нем написано Application.ProcessMessages." Наша несчастная программа просто повиснет, ибо удаление (N-1)-го потока не произойдет, по причине уже вызванного TThreadList.Lock
И он(поток) не удаляется из списка, и возврат по стеку не происходит. Программа ожидает UnLock, что бы исполнить, но UnLock не происходит так как ожидается возврат по стеку вызовов. Это абсолютно такаяже трудноуловимая ситуация как и с Exception при Application.ProcessMessages с простым TList, лучше уж Exception.
Или я чего то не допонимаю?



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

Текущий архив: 2003.09.22;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.018 c
1-71719
Relaxxx
2003-09-10 15:23
2003.09.22
Красивый ПрогрессБар или Gauge


3-71543
analyser
2003-08-28 10:25
2003.09.22
ADOConnection и UDL - ошибка открытия, если сначала прочитать...


1-71587
AlexSSS
2003-09-09 19:35
2003.09.22
КАК открыть файл, который лежит на CD


1-71604
GreySerg
2003-09-09 16:50
2003.09.22
Как сделать в ListView одну колонку ?


14-71941
Ketmar
2003-09-02 14:56
2003.09.22
сервисы ntvdm -- документация. где?