kickerxy123
Erfahrenes Mitglied
Hallo 
ich habe ein Problem bezgl. Multithreadings.
Hier zunächst meine Daten:
-Windows XP SP3 (up-to-date)
-mingw
-dev-cpp
also ich habe hier folgenden Code:
gut, soweit ich das verstehe ist er in einer Endlosschleife (while(true)), ist auch gut so, wartet auf ein Objekt namens hTimerEvent und zwar für 100milisekunden. Nach 100ms beginnt er dann mit seinem Code
also ist hTimerEvent Thread 1 und das unter Thread 2?
anwendung soll das ganze finden für eine Socketprogrammierung, nämlich habe ich mehrere Clienten, die alle gleichzeitig auf den Server wollen.
Dieser soll dann die Daten von den Clienten nacheinander empfangen und reagieren. Das ist auch kein Problem, aber muss auch die Reihenfolge vertauscht werden können (Threads), vgl Beispiel:
Server lauscht an Client1 mittels Funktion recv(Socket,string,0)
Client1 macht aber nichts, die Funktion wartet und kriegt gar nicht mit, dass der 2. Client was will^^
also dachte ich an multithreading..., bessere Idee=? oder könnte ihr mir hierbei helfen?
also erstmal will ich wissen ob ich alles richtig verstanden habe. dann wie ich das alles starte, denn was meint die FunktionTimer Thread mit PVOID pvoid=?
Ich hoffe mein Anliegen ist verständlich
ps: muss nur unter win laufen, das reicht vollkommen,
lg
eXo

ich habe ein Problem bezgl. Multithreadings.
Hier zunächst meine Daten:
-Windows XP SP3 (up-to-date)
-mingw
-dev-cpp
also ich habe hier folgenden Code:
Code:
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
static unsigned __stdcall TimerThread (PVOID pvoid);
static HANDLE hTimerEvent = 0;
static HANDLE hTimerThread = 0;
int main(){
// Event erzeugen:
hTimerEvent = CreateEvent(NULL, FALSE, TRUE, __TEXT("hTimerEvent"));
// Thread starten
}
// Der Thread selbst:
static unsigned __stdcall TimerThread (PVOID pvoid)
{
while (true)
{
WaitForSingleObject(hTimerEvent, 100); //INFINITE = unendlich; in MS
// Tu irgendwas
}
return 0;
}
also ist hTimerEvent Thread 1 und das unter Thread 2?
anwendung soll das ganze finden für eine Socketprogrammierung, nämlich habe ich mehrere Clienten, die alle gleichzeitig auf den Server wollen.
Dieser soll dann die Daten von den Clienten nacheinander empfangen und reagieren. Das ist auch kein Problem, aber muss auch die Reihenfolge vertauscht werden können (Threads), vgl Beispiel:
Server lauscht an Client1 mittels Funktion recv(Socket,string,0)
Client1 macht aber nichts, die Funktion wartet und kriegt gar nicht mit, dass der 2. Client was will^^
also dachte ich an multithreading..., bessere Idee=? oder könnte ihr mir hierbei helfen?
also erstmal will ich wissen ob ich alles richtig verstanden habe. dann wie ich das alles starte, denn was meint die FunktionTimer Thread mit PVOID pvoid=?
Ich hoffe mein Anliegen ist verständlich

ps: muss nur unter win laufen, das reicht vollkommen,
lg
eXo