Multithreading



  • Hallo Leute!

    Ich wollte jetzt in C einen Multithread programmieren, jedoch findet er _beginthread und _endthread "auch mit argumentbezogener Suche" nicht.
    Ich habe jedoch die process.h inkludiert und auch im Visual Studio Include Ordner ist sie vorhanden.
    Was kann der Fehler sein?

    Vielen Dank, Mfg, David



  • Das hier ist das flasche Forum. Threads sind nur in platformspezifischen Libraries enthalten.

    Da du etwas von der Visual C++ geredet hast, schätze ich mal du benutzt Windows. Also ab zur WinAPI.

    Trozdem hier ein Beispiel für Windows Threads:

    class CServer {
       int num;
    };
    
    #include <windows.h>
    
    DWORD WINAPI StartServer( CServer* pServer ) {
        /* mach was im thread */
    }
    
    int WINAPI WinMain (HINSTANCE hThisInstance, 
        HINSTANCE hPrevInstance, 
        LPSTR lpszArgument, 
        int nFunsterStil) {
    
        CServer *pServer = new CServer();
    
        DWORD dThreadID;
        CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)StartServer,pServer,0, &dThreadID );
    
        while(1);
    
    }
    

    Du kannst auch statt WinMain einfach:

    int main( int argc, char *argv[] )
    

    nehmen, wenn du ein Konsolen programm schreiben willst.



  • Aber in C sollte das doch genau so möglich sein.
    Ich habe das laut folgender Seite probiert:
    http://www.codeproject.com/threads/crtmultithreading.asp
    Hier wird doch auch _beginthread in C verwendet, oder? In meinem Buch "C von Anfang an" steht es fast genauso drinnen.

    Mfg, David



  • schau mal ob in den project settings unter code generation multithreaded eingestellt ist



  • Aso.. die Einstellung kannte ich gar nicht.
    Ich habs jetzt von Singlethreaded-Debug auf Multithreaded-Debug (/MTd), richtig?
    Es kommt zwar noch was ziemlich seltsames raus, aber es scheint grundsätzlich zu funktionieren..
    thx, David



  • ZEROlimited schrieb:

    Aber in C sollte das doch genau so möglich sein.

    Du hast nicht genau gelesen. Ich hab dir nur gesagt, dass es nich im C Standard Enthalten ist.



  • ZEROlimited schrieb:

    Aber in C sollte das doch genau so möglich sein.
    Ich habe das laut folgender Seite probiert:
    http://www.codeproject.com/threads/crtmultithreading.asp
    Hier wird doch auch _beginthread in C verwendet, oder? In meinem Buch "C von Anfang an" steht es fast genauso drinnen.

    Mfg, David

    Es ist zwar C, aber nicht ANSI-C. Multithreading ist betriebssystemabhängig (nicht jedes Betriebssystem kann Multithreading; siehe Native DOS [abgesehen von gewissen Erweiterungen]).
    Darum wandert der Thread jetzt auch ins Konsolenforum.



  • Dieser Thread wurde von Moderator/in AJ aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten