Avatar billede clinton-2 Nybegynder
11. august 2006 - 15:40 Der er 2 kommentarer og
1 løsning

Threads evc

Har brug for et simpelt eksempel til hvordan man opretter, starter og stopper en tråd i embedded visual c++.
Avatar billede d34c0n Praktikant
11. august 2006 - 17:50 #1
Jeg tror følgende ville kunne bruges:

#include <stdio.h>
#include <windows.h>

DWORD WINAPI MyThread(LPVOID lpParam)
{
    int i = 0;
    while (true)
    {
        printf("%i\n");
        i++;

        if (i == 10)
            ExitThread(0);
    }
    return 0;
}

int main(int argc, char* argv[])
{
    DWORD dwThreadId, dwThrdParam = 1;
    HANDLE hThread;

    hThread = CreateThread(NULL, 0, MyThread, &dwThrdParam, 0, &dwThreadId);
               
    if (hThread != NULL)
        CloseHandle(hThread);

    return 0;
}
Avatar billede clinton-2 Nybegynder
15. august 2006 - 10:16 #2
Det går galt i main funktionen, den kender ikke hThread:(
Avatar billede clinton-2 Nybegynder
15. august 2006 - 10:38 #3
har løst problemet med dette eksempel


    #include <stdio.h>
    #include <windows.h> // for all the Win32 specific thread information

    DWORD WINAPI MyThread(LPVOID); // Standard function prototype for Win32 thread

    void main(void)
    {
        DWORD iID[1];        // array of thread id's
        HANDLE hThreads[1]; // array of thread handles
        DWORD waiter;        // flag which is set when all therads finish

        // create two threads which do the exact same thing
        hThreads[0] = CreateThread(NULL,0,MyThread,"T1",NULL,&iID[0]);

        // wait until threads have finished before parent thread exits
        waiter = WaitForMultipleObjects(2,hThreads,TRUE,INFINITE);
    } 

    DWORD WINAPI MyThread(LPVOID n)  // defines what our threads actually do
    {
        char* name = (char*)n;  // needed to convert passed parameter to a string
        for (int i=0;i<100; i++)
            printf("Thread %s: i=%d\n",name,i);
        return 0;
    }
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