Euh ! tu te contredis ! tu n'as pas vu la diff�rence ?
Sinon, ton thread, il est un peu court non ?
Ta fen�tre s'affiche et pouf le thread, il s'arr�te !
�a doit faire mal, la fen�tre est encore l� ???
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| void __fastcall TMonThread::Execute()
{
Form2-> Show();
try
{
while (BooleanGlobalQuiDitQueLeTraitementTourne) // pas besoin de SC pour ce genre de valeur
{
PumpMessages(); // Moins brutal que Application.ProcessMessages(); // A Tester SANS !
Sleep(1);
}
}
__finally
{
Form2-> Hide();
}
} |
D�sol�, je n'ai pas encore fait �a en C++, donc voici ce que j'ai d�j� fait en Delphi
Ajoute PumpMessages si besoin !
Code:
1 2 3 4 5 6 7 8 9
| procedure PumpMessages;
var
Msg: TMsg;
begin
while PeekMessage(Msg, 0, 0, 0, pm_Remove) do begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end; |
Et puis Show ce n'est pas bloquant !
Tu peux l'utiliser SANS thread !
Autre Question :
Ton traitement est une boucle que tu as faite ou un traitement bloquant ext�rieur (SQL de plusieurs minutes, Exe externe, DLL, ...) ?
Tu devrais lancer le traitement dans le thread secondaire et laisser la progression dans le thread principal (avec PostThreadMessage tu peux faire des choses sympas !)