thread-ende
-
hi,
ich hab hier ein paar threads, und ich will, dass die funktion erst weitergeht, wenn alle threads beendet sind.
das hab ich dann mit:WaitForMultipleObjects(MAXIMUM_WAIT_OBJECTS, threads, TRUE, INFINITE);
ausprobiert, aber des geht irgendwie nicht.
testweise hab ich direkt drunter eine messagebox gemacht, und die geht schon auf, bevor auch nur ein thread seine funktion durchlaufen hat, und seinen rückgabewert zurückgegeben hat.
kann mir jemand helfen ?
-
MAXIMUM_WAIT_OBJECTS ist bei mir 64. Hast du wirklich 64 Threads, auf die du wartest? Ansonsten solltest du da mal die tatsächliche Anzahl angeben.
-
hab ich auch schon probiert ...
-
Hallo,
das passt eindeutig besser nach WinAPI
-
Zeig mal wie threads so zustande kommt..
-
id = 0; HANDLE threads[255]; for(int jj = ipfrom.cell4; jj <= ipto.cell4; jj++) { threads[ipto.cell4 - ipfrom.cell4] = CreateThread(NULL, 0, scan, &scanv, 0, &id); rlines++; id++; } WaitForMultipleObjects(id, threads, TRUE, INFINITE);
ipfrom.cell4 is des letzte zahlenpaar der 1. ip (z.b. von 80.148.0.13 isses 13)
ipto.cell4 is des letzte zahlenpaar der 2. ip
-
Kann es sein, dass ipfrom.cell4 >= ipto.cell4 ist ?
btw: Kommt mir irgendwie komisch vor, dass jeder der Threads scan als Einsprungspunkt nutzt. Da hab ich das Gefühl du "vergewaltigst" das Thread-Prinzip. (was allerdings nix heissen soll)
-
Ähm - die Zählvariable aus der Schleife (jj) verwendest du im Schleifen-Körper gar nicht
-> im threads-Array wird nur ein Feld besetzt (und das ist ja nach Werten evtl. nicht mal 0)