Avatar billede xiol Nybegynder
26. oktober 2005 - 01:02 Der er 6 kommentarer og
1 løsning

problem med Threads

Jeg vil gerne have overført et object som en parameter til min nye tråd men kan ikke regtig få det til at virke.

int main(void)
{
    DWORD dwThreadId;
    HANDLE hThread;

    serialCom myCom;

    hThread = CreateThread(NULL, 0, ThreadProc, (LPVOID), myCom, 0, &dwThreadId);
    WaitForSingleObject(hThread,INFINITE);
   

    return 0;
}

DWORD WINAPI ThreadProc( LPVOID lpParam )
{   
    serialCom MyOtherCom = (serialCom)lpParam;

    return 0;
}

håber der er nogen der kan hjælpe

mvh Xiol
Avatar billede xiol Nybegynder
26. oktober 2005 - 01:04 #1
der var lige smuttet et komma ind et forkert sted.

hThread = CreateThread(NULL, 0, ThreadProc, (LPVOID)myCom, 0, &dwThreadId);
Avatar billede bertelbrander Novice
26. oktober 2005 - 01:06 #2
Du kan ikke overføre hele serialCom objektet til tråden (medmindre at du er SIKKER på at det kun fylder 4 byte).
Du kan overføre en pointer til serialCom objektet.
Avatar billede xiol Nybegynder
26. oktober 2005 - 01:13 #3
kan du komme med et eksempel.
Avatar billede bertelbrander Novice
26. oktober 2005 - 01:16 #4
hThread = CreateThread(NULL, 0, ThreadProc, (LPVOID)&myCom, 0, &dwThreadId);

DWORD WINAPI ThreadProc( LPVOID lpParam )

    serialCom *MyOtherCom = (serialCom *)lpParam;
    MyOtherCom->Whatever();
    return 0;
}
Avatar billede xiol Nybegynder
26. oktober 2005 - 09:24 #5
tak for det. Hvis du lige smidder et svar, så smider jeg nogle point.
Avatar billede bertelbrander Novice
26. oktober 2005 - 19:24 #6
Jeg samler ikke på point.
Avatar billede xiol Nybegynder
26. oktober 2005 - 23:33 #7
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester