1) Dans un objet d�riv� de TThread j'ai une propri�t� qui initialise une variable membre priv�e. Cette propri�t�, �crite par l'application principale, est cycliquement regard�e dans le Ex�cute() du thread pour en faire quelque chose. Y a t-il des pr�cautions particuli�res � prendre pour l'acc�s a cette variable ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 //***** FICHIER .H *********************************** #ifndef Unit2H #define Unit2H #include <Classes.hpp> class MonThread : public TThread { private: AnsiString FBuffer; protected: void __fastcall Execute(); public: __fastcall MonThread(bool CreateSuspended); __property AnsiString Buffer = { read = FBuffer, write = FBuffer}; }; #endif //***** FICHIER .CPP ********************************* #include "Unit2.h" #pragma package(smart_init) __fastcall MonThread::MonThread(bool CreateSuspended) : TThread(CreateSuspended) { } void __fastcall MonThread::Execute() { //---- Placer le code du thread ici ---- while(! Terminated) { Sleep(100); // Ici Faire quelque chose avec FBuffer } }
2) Lorsque l'application principale appelle une m�thode d'un objet d�riv� de TThread, cette m�thode est-elle appel�e dans le contexte du thread principal ou dans celui du thread courant ?
3) Si depuis Execute() de l'objet Thread, j'appelle une fonction du thread principal via Synchronize(), la dite fonction peut-elle appeler � son tour sans pb une m�thode de ce m�me l'objet Thread ?
Merci d'avance pour votre aide.
Partager