Toon posts:

TThread met parameters

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik schrijf in Borland C++ Builder een klein programmatje, welke op een gegeven moment een TThread aanmaakt. Nu is het zo dat ik hierbij een variabele wil meegeven. Maar hoe kan dat? 'k heb veel gezocht op google, en BCB pages, maar niets kunnen vinden.

Hier zijn mijn header en cpp file:

#ifndef ServerThreadH
#define ServerThreadH
#include <time.h>
#include "FormUnit1.h"
#endif
class ServerThread : public TThread
{
public:
ServerThread(bool inactive = false) : TThread (inactive) {}
void __fastcall Execute ();
bool EchoIncomingPackets(SOCKET sd);
};

CPP File:
#include <vcl.h>
#pragma hdrstop
#include "ServerThread.h"
#include "ListeningThread.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
const int kBufferSize = 1024;
//---------------------------------------------------------------------------
void __fastcall ServerThread::Execute()
{
// Hier zou ik dus een variabele willen benaderen, welke meegegeven is met de thread.
}

// het aan roepen van een thread doe ik zo:

new ServerThread(false);

Kan iemand mij helpen?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 00:21

Creepy

Tactical Espionage Splatterer

Een variabele toevoegen een de TThread,en hier een method bij maken om deze aan te geven.

Dan kan je in de code waar je de thread gebruikt iets doen ala
code:
1
2
thread->setmyvar(1);
thread->execute(true);

Je zou misschien zelfs nog de execute method kunnen overriden of overloaden zodat deze een extra parameter krijgt. Dan krijg je dus iets van
code:
1
thread->execute(true,1);

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

code:
1
TThread::TThread(void *(*fn)(void*), void *arg, EPriority pri)

Deze constuctor kan argumenten aanvaarden.

Voor meer info klik
hier

Wat je ook misschien kan doen is in de klase ServerThread een globale var maken.

  • Baron
  • Registratie: Juli 2000
  • Laatst online: 21-06 17:02
Er zit een mooi voorbeeldje over threads bij C++Builder.

Standaard path: C:\Program Files\Borland\CBuilder6\Examples\Apps\Threads

Verwijderd

Topicstarter
Ik heb het geprobeerd maar kom er als nog niet uit.
Hoe zou ik de Execute() function kunnen overriden?

Verwijderd

door in de klasse serverThread een methode Execute() te maken.
Pagina: 1