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.