Visual C++ 6 / Threads frage
-
Hi, ja ich schon wieder

ich hab eine normale kleine simple win32 anwendung geschrieben
und im debugger fenster steht nach dem beenden immerThe thread 0x90C has exited with code 0 (0x0). The thread 0x320 has exited with code 0 (0x0)jetzt meine frage, warum sind das 2threads ???
es ist doch nur ein programm am laufen.
widerum bei einem anderen programm wurde ein thread wärend das programm lief
beendet und der 2te erst als ich das fenster geschlossen hab.
hoffe mir kann da einer helfen, c++ an sich ist ganz leicht zu verstehen
aber das drumherum ist echt krass.
-
ich hab eine normale kleine simple win32 anwendung geschrieben
dann zeig doch den code
-
naja ich wollt das hier nicht so mit code vollmüllen da ich mir übersicht schon zur
angewohnheit gemacht habe (dank an alle prozedurale programmiersprachen)
also hier der komplette sourcecode
(allerdings nicht so übersichtlich, da ich eine scrollsession niemanden zumuten
will
)
btw: ich habe erst vor kurzem mit c++ angefangen, verbesserungsvorschläge und
tipps sind sehr erwünscht.main.cpp
#include "app32.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { App32_CreateWindow(); while(!CheckMsg()) { } App32_Release(); return 0; }app32.h
#ifndef A7_APP32_H #define A7_APP32_H #define WIN32_LEAN_AND_MEAN #include <windows.h> void App32_CreateWindow(); void App32_Release(); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int CheckMsg(); #endifapp32.cpp
#include "app32.h" HWND hWnd = NULL; HINSTANCE hInstance = NULL; LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_CLOSE: PostQuitMessage(0); return 0; } return DefWindowProc(hWnd,uMsg,wParam,lParam); } int CheckMsg() { MSG msg; if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { if(msg.message == WM_QUIT) return 1; TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } void App32_CreateWindow() { WNDCLASS wc; hInstance = GetModuleHandle(NULL); wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; wc.lpfnWndProc = (WNDPROC) WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = NULL; wc.lpszMenuName = NULL; wc.lpszClassName = "A7D3D9E"; RegisterClass(&wc); hWnd = CreateWindow("A7D3D9E", "A7Test", WS_OVERLAPPEDWINDOW, 0, 0, 640, 480, NULL, NULL, hInstance, NULL); ShowWindow(hWnd, SW_SHOWDEFAULT); } void App32_Release() { DestroyWindow(hWnd); UnregisterClass("A7D3D9E", hInstance); }achso und noch eine frage:
wenn das programm mehre threads nutzt benötigt man dann einen P4(hyperthreading)
prozessor ? - klingt lächerlich und ich weiß auch nicht wirklich was threads sind (Parrallel laufende prozese ?), naja hoffe das wird mir hier mal aufgedeckt.EDITIERT:
ist meine frage so bescheuert ? oder weiß es wirklich keiner ?Gruss Tony
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Nur so viel, das System (Windows) erstellt thread, diese werden bei einem Singleprozessor der reihe nach abgearbeitet. Der P4HT (Haperthreading) kann 2 Threads auf einmal abarbeiten. Dies kommt auf den Code an, denn der P4HT nutzt die einheiten der CPU die im moment nicht vom hautthread benutzt werden, für den 2. Thread. Die neuen duo 2 cpu welche 2 cpu kerne besitzten haben zwei vollwertige kerne, beides hat für den Programierer den nachteil, das er sich um die Threadsyncronisierung kümmern muß, wenn er einen thread startet, und daten an einen anderen thred übertragen will.
Da du nur ein simples Prg hast, und keine eigenen Thread startest und alle Thread die vom system(Windows) gestartet werden, mit 0 beendet werden, also alles OK brauchst du dir keine gedanken um threads zu machen.
vielleicht etwas viel als antwort, aber wenn du mehr darpber erfahren willst, dann solltest du dich eingehen mit prozessoren unt thread beschäftigen
gruß