in questo pseudo codice in formato Borland Builder non mi spiego alcune cose.
Dichiaro due thread e li istanzio. Poi uso il metodo Syncronize() per evitare collisioni con la UI per inviare messaggi su socket. Effettivamente funziona, ma quale dei due thread invia i messaggi?
Questo non mi è chiaro.
Visto così, ho creato due thread gemelli che fanno la medesima cosa: sbaglio?
codice:
class TMyThread : public TThread
{
protected:
void __fastcall Execute();
public:
__fastcall TMyThread();
void __fastcall MySincrSock1();
void __fastcall MySincrSock2();
};
TMyThread *Thread1 = NULL;
TMyThread *Thread2 = NULL;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Thread1 = new TMyThread();
Thread2 = new TMyThread();
}
void __fastcall TMyThread::Execute()
{
while (!Terminated)
{
Synchronize(&MySincrSock1);
Sleep(200);
Synchronize(&MySincrSock2);
Sleep(200);
}
}
void __fastcall TMyThread::MySincrSock1()
{
if(Form1->ServerSocket1->Socket->ActiveConnections>0)
Form1->ServerSocket1->Socket->Connections[0]->SendText("aabbccdd");
}
void __fastcall TMyThread::MySincrSock2()
{
if(Form1->ServerSocket2->Socket->ActiveConnections>0)
Form1->ServerSocket2->Socket->Connections[0]->SendText("eeffgghh");
}
//---------------------------------------------------------------------------