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

Вниз

Вызов процедуры из потока   Найти похожие ветки 

 
3APA3A   (2004-07-03 19:03) [0]

У меня вот такая процедура

   procedure Wait(Interval : Cardinal);
   var hEvent : Cardinal;
   begin
     hEvent := CreateEvent(nil, True, True, nil);
     WaitForSingleObject(hEvent, Interval);
     CloseHandle(hEvent);
   end;

 Является ли она потокобезопасной?  Я думаю, что да, но интересно послушать другие мнения...

P.S. вопрос даже не конкретно про мою процедуру, а вообще -
 когда поток вызывает функцию, создаются ли ее локальные переменные в стеке для каждого потока или нет?

P.S.S. в довесок - чем threadvar отличается от var?


 
DrPass ©   (2004-07-03 19:19) [1]

Является.
P.S. Создаются
P.P.S. Глобальная переменная, объявленная как var, доступна для всех потоков
Переменная threadvar как бы создается в нескольких экземплярах - для каждого потока, т.е. является потокобезопасной. На самом деле threadvar представляет собой прозрачную для программиста оболочку над виндовым механизмом thread local storage, и потому доступ к таким "переменным" осуществляется намного медленнее, чем к обычным


 
3APA3A   (2004-07-03 19:32) [2]

Отсюда вытекает
  что как только поток завершился нет никакой возможности узнать "его" значение threadvar-переменной
  или
    я ошибаюсь... можете поподробней рассказать про механизм thread local storage или заURLить меня куда-нибудь?


 
Polevi ©   (2004-07-03 22:29) [3]

http://www.delphimaster.ru/articles/localmem/index.html



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

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

Наверх




Память: 0.47 MB
Время: 0.043 c
3-1087742426
Michail Dalakov
2004-06-20 18:40
2004.07.18
trigger s в oracle


3-1088204723
eLVik
2004-06-26 03:05
2004.07.18
Изменение структуры DBF


6-1084542793
osama
2004-05-14 17:53
2004.07.18
Вопрос по сокетам


4-1086525564
Islander
2004-06-06 16:39
2004.07.18
Хендл окна, висящего поверх других на экране и не активного


1-1089090774
vlgrig1961
2004-07-06 09:12
2004.07.18
Как заставить компоненты TShape, TBevel выполять BringToFron