connect() verkürzen
-
Hi,
danke für eure Hilfe!
Ja ich will in einer Schleife immer überprüfen ob der Thread noch läuft.
mfg
-
Quote:
jo, aber besser ist:
Code:
if (WAIT_OBJECT_0 == WaitForSingleObject (dein_threadhandle, 10))
{
// der thread wurde beendet.Kannst du mir das erklären?
Check ich ned ganz.
und:von welchem Typ ist WAIT_OBJECT_0? und was is die 10?Thx
-
K hab diese Antworten im MSDN gefunden.
Nur noch eins:
Bezieht sich das "Object" im Funktionsnamen auf den Thread?
Lg
-
Kannst du mir den Schnipsel trotzdem genauer erläutern?
Mfg
-
K gecheckt, vielen Dank!
-
-
ten schrieb:
--------- schrieb:
WaitForSingleObject(dein_threadhandle, INFINITE);..ich dachte er will nur mal sporadisch nachschauen, ob der thread noch läuft. oder nicht?
Dann sollte er als Time-Out Wert gleich 0 verwenden.
-
Vielen Dank für eure Hilfe!
ich hab nur noch eine letzte Frage:
ich bekomm beim compilieren folgende Fehlermeldung:
I:\Programme\PellesC\Projects\check\check.c(77): warning #2215: Conversion from 'int' to 'unsigned short int'; possible loss of data.
bei dieser Zeile:
unsigned short int p=80;
Adress.sin_family=AF_INET;
Adress.sin_port=htons(p);Wisst ihr was ich da falsch gemacht habe?
Lg
-
Lass das int weg
.
-
Hmm funzt leider auch ned...gg
Ah und ich hab noch ein Problem lol:
Wenn ich ne Funktion (mit Schleife) in einem Thread starte, muss ich dann zb die Zählervariable an den Thread übergeben??
Ich frage weil ich ne Schleife hatte mit einer Variable die IN der Funktion deklariert wurde.
Trotzdem wurde der Testdialog statt 3 mal unendlich mal ausgegeben und es ist bestimmt kein SchleifenFehler.
MFG
-
Theseus schrieb:
I:\Programme\PellesC\Projects\check\check.c(77): warning #2215: Conversion from 'int' to 'unsigned short int'; possible loss of data.
bei dieser Zeile:
unsigned short int p=80;
eine selten dämliche meldung... wass'n das für'n unfähiger compiler?
wenn's warning wech soll: unsigned short p=(unsigned short)80;
:xmas2:
-
Nein, nütz leider auch nix lol.-
hmm zum Compiler: Pelles C und Warnstufe 2
-
Theseus schrieb:
Pelles C ...
...scheint buggy zu sein.
oder ist das warning vielleicht doch in einer anderen zeile?
:xmas2:
-
Also das mit der Warnung liegt am Compiler.
Theseus schrieb:
Wenn ich ne Funktion (mit Schleife) in einem Thread starte, muss ich dann zb die Zählervariable an den Thread übergeben??
Ich frage weil ich ne Schleife hatte mit einer Variable die IN der Funktion deklariert wurde.
Trotzdem wurde der Testdialog statt 3 mal unendlich mal ausgegeben und es ist bestimmt kein SchleifenFehler.
Ähm, das hängt alles von der Verwendung ab, wieso musst Du die Zählervariable dem Thread übergeben ?
Mit Variablen und Threads ist aber generell Vorsicht geboten, siehe
Thread Local Variables & Thread-Local-Storage (TLS).
-
Nein, ist diese Zeile.
-
Ah zu spät, Vorpost ging noch an Ten.
-
Hi ich bins nochmal:
hmmm wie kann ich mehrere Parameter übergeben? (bei CreateThread)
Einfach Beistrich?
Lg
-
In dem Du Dir eine Struktur schreibt, dann ein Objekt davon erstellst und dann einen Zeiger auf das Objekt übergibst:
// C++ - Style (struct's sind automatisch Typen)! struct SData { int i; long l; // ... }; SData data; // muss ggf. statisch sein data.i = ...; // ... DWORD dwThreadID; HANDLE hThread = CreateThread(NULL, 0, ThreadProc, &data, 0L, &dwThreadID); DWORD WINAPI ThreadProc(void* pvData) { // Falls SData Kontrollvariablen enthält, muss der folgende Zeiger als // 'volatile' definiert werden, damit der Compiler wirklich keine // Variablen-Optimierungen durchführt. SData* pData = reinterpret_cast<SData*>(pvData); // Verwendung... if(pData->i == 78) pData->l = 8; // oder was weiß ich^^ }
-
Hab vielen Dank, nur leider is das was ich übergeben will selbst schon structs.
Ist das ein Problem?Wusste die Antwort mal lol aba bin mir jetzt nicht mehr sicher.
Lg
-
Das heißt Du willst zu Deiner Struktur noch mehr (Strukturen oder was auch immer) übergeben, oder was ? Wenn ja dann packste alles wieder inne Struktur [eine 'Thread-Daten-Struktur' enthält dann weitere Strukturobjekte anderer (oder auch gleicher) Strukturtypen] :p . Wenn nicht übergibst Du einfach die Addresse deines Strukurobjekts ('das Du schon hast')
.Kurz: Nein ist kein Problem ...
