errori a parte il codice è come questo. Ora stavo provando ad usare i comandi per le sezioni cridiche ma credo di avere una enorme lacuna; osservando il codice io scrivo:


InizioSezioneCritica()
Form1->Caption->Label1 = i;
FineSezioneCritica()

ho usato due comandi inventati; ma si direbbe che non devo proteggere i metodi, come invece ho scritto, ma solo le eventuali variabili globali condivise.


codice:
//---------------------------------------------------------------------------
#include <vcl\vcl.h>

#pragma hdrstop

#include "Unit1.h"

HANDLE MyThread;
DWORD WINAPI ThreadTest( LPVOID lpParameter );
DWORD ID1;

//---------------------------------------------------------------------------

#pragma link "Grids"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
 }
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        MyThread=CreateThread(NULL,0,ThreadTest,NULL,0,&ID1);
        Form1->Caption = "Started.....";
}
//---------------------------------------------------------------------------

DWORD WINAPI ThreadTest( LPVOID lpParameter )
{
   for(int i=0; i<10000; i++)
                  Form1->Label1->Caption=i;

        Form1->Caption = "Stopped.....";
        Sleep(50);
}
//---------------------------------------------------------------------------