ik ben niet echt op de hoogte van het Win32 threads programming model (ik ken enkel POSIX threads) maar wat ik wel weet is dat in C++ met pthreads (unix/linux) je een nieuwe thread alleen kan starten door aan de thread_create functie de startroutine mee te geven:
bijv met pthreads zou je zoiets kunnen doen om het java model te kunnen simuleren:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #include <pthread.h>
class SomethingRunnable
{
private:
void* do_work (void *arg);
public:
void run ()
{
pthread_t tid;
pthread_create (&tid, NULL, do_work, NULL);
pthread_detach (tid);
}
} |
maar goed de precieze syntax van het Win32 model weet ik dus niet. Ik heb effe snel wat research gedaan op internet maar volgens mij kan je uit de Win32 API een functie als CreateThread gebruiken.
Misschien heb je hier nog wat aan:
http://www.codeproject.com/threads/thread_win32.asp
edit
Ik heb die link nog even bekeken en
volgens mij werken win32 threads ongeveer op een soortgelijke manier. Overigens heb je niet speciaal een class nodig om een aparte thread uit te voeren: je kan volgens mij gewoon een thread maken en deze een startfunctie + argumenten als parameters meegeven. Maar in het Java model is inderdaad alles een class.
Kleine hint voor als je enkel Java gewend bent en je wilt data delen tussen verschillende threads: C/C++ kent geen 'synchronized'
Threads programming is koel maar kan veel hoofdbrekens kosten...
[
Voor 25% gewijzigd door
Tmr op 19-05-2005 20:52
]