Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
Jedi K   (2003-06-10 11:17) [0]

безопасно обращатся к другим обьектам из конструктора обьекта?


 
Jedi K   (2003-06-10 11:18) [1]

сорри:
безопасно обращатся к другим обьектам из конструктора потока - потомок TThread?



 
Palladin   (2003-06-10 11:21) [2]

если обращаешься до вызова inherited create то безопасно, если после то опасно


 
Jedi K   (2003-06-10 11:24) [3]

Palladin © (10.06.03 11:21):
thanks


 
Digitman   (2003-06-10 11:24) [4]

Тело метода-конструктора TThread исполняется в том код.потоке, который вызывал этот метод. И совершенно неважно, чей это "потомок" - TThread или TObject или еще чей-то...
Гораздо важней - безопасно ли обращение к объектам того код.потока, который вызвал метод-контруктор класса, в теле которого происходит обращение к неким объектам


 
Palladin   (2003-06-10 11:29) [5]

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


 
Jedi K   (2003-06-10 11:37) [6]

Digitman © (10.06.03 11:24):

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

Я все правильно понял что я могу это делать в моем случае ?
спасибо.


 
Digitman   (2003-06-10 11:56) [7]

если конструктор TThread вызван в осн.код.потоке, то обращение в его теле (где бы то ни было) к VCL-объектам, ссылки на которые (в том или ином виде) переданы факт.параметрами констр.метода, с т.з. threadsafe совершенно безопасно. Равносильно тому, как если бы код обращения к этим объектам был вынесен за пределы конструктора в тело вызывающей конструктор процедуры-ф-ции.
Единственное, на что следует обратить внимание - объекты, к которым происходит обращение, должны реально существовать на момент обращения.


 
Jedi K   (2003-06-10 12:01) [8]

Digitman © (10.06.03 11:56):
понял, еще раз спасибо, в литературе не нашел нешел обсуждение таких моментов, а может просто плохо искал :).



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

Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.026 c
3-83912
Денис Курьин
2003-06-02 14:27
2003.06.26
Drag&Drop деревьев


1-84304
DOR
2003-06-15 10:53
2003.06.26
Есть memo1 Edit1 и Memo2 так вот.....


1-84180
Doc
2003-06-11 17:21
2003.06.26
String, TObject и т.д. - Pointer?


1-84312
oleg_SYS
2003-06-08 22:03
2003.06.26
Как конвейтировать TBitMap в TIcon?


6-84502
andrei
2003-04-24 10:07
2003.06.26
Как создать полноценный Web Server





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский