Ich neige dazu, POSIX-Threads zu verwenden, wenn in C programmiert wird, unter Linux .
Ohne MFC
Frage:
Wie würde ich dann Threads in VC ++ erstellen?
Finden Sie mehr Informationen zu Threads unter win32?
Ich liebe stackoverflow - beste Ressource für Studenten!
Grüße
Sie sollten die rohe Win32 CreateThread()
API nicht verwenden.
Verwenden Sie die _beginthreadex()
der C-Laufzeitumgebung, damit die Laufzeitumgebung die Möglichkeit hat, sie einzurichten eigene Thread-Unterstützung.
Wenn Sie nach einer plattformunabhängigen Methode suchen, verwenden Sie boost
gibt es auch beginthread () und begintreadex () Funktionen. Beide scheinen die Win32-API zu ergänzen, in einem Sinn, dass Sie in einigen Anwendungsfällen immer noch einige Win32-Funktionen aufrufen müssen (z. B. CloseHandle für begintreadex). Wenn Sie sich also nicht so sehr für die Plattformkompatibilität interessieren, können Sie auch das Vorspiel abschneiden und CreateThread () verwenden.
Win32-Thread-Behandlung ist hier dokumentiert: Ссылка
[edit1] Beispiel:
%Vor%[edit2] CRT & amp; CreateThread ():
pro MSDN:
Ein Thread in einer ausführbaren Datei, die die C-Laufzeitbibliothek (CRT) aufruft, sollte die Funktionen _beginthreadex und _endthreadex für die Threadverwaltung anstelle von CreateThread und ExitThread verwenden. Dies erfordert die Verwendung der Multi-Thread-Version des CRT. Wenn ein mit CreateThread erstellter Thread den CRT aufruft, kann der CRT den Prozess unter wenig Arbeitsspeicher beenden.
Sie können entweder die CRT-Funktion _beginthreadex () oder die Windows-API-Funktion CreateThread () verwenden. _beginthreadex () ist für frühe Versionen von VC ++ erforderlich, die über eine CRT verfügen, die threadlokalen Speicher nicht initialisiert hat. CreateThread () ist in mindestens VS2005 und höher in Ordnung.
Sie möchten wahrscheinlich einen Blick auf die CreateThread () werfen Funktion.
Verwenden Sie _beginthread()
oder _beginthreadex()
, um einen neuen Thread zu erstellen. Verwenden Sie nicht die Win32-Funktion CreateThread()
- die Multithread-Aspekte der C-Laufzeit werden nicht ordnungsgemäß initialisiert. Siehe auch diese Frage .
Einige gute Bücher zu diesem Thema sind Petzolds Programmierfenster und Richters Programmieranwendungen für Windows. Insbesondere letzteres geht in serverseitige Programmierung wie Thread und Synchronisation APIs in einer Menge Tiefe.
BEARBEITEN: Für Code-Snippets ist Google Ihr Freund. Zum Beispiel Dieser Artikel enthält einige minimale Thread-Beispiele.
Es gibt auch die Funktion _beginthread () , die Sie nachschlagen können . Es unterscheidet sich ein wenig von CreateThread (), Sie sollten sich der Unterschiede bewusst sein, bevor Sie eine auswählen.
Tags und Links c++ windows visual-studio-2008