Wenn meine Win32-Anwendung gestartet wird, sollte LoadDB()
ausgeführt werden und es dauert mindestens 10 oder 20 Sekunden. Wo LoadDB()
ausführen, als Hintergrund laden Aufgabe, um zu verhindern, dass das GUI-Fenster reagiert nicht?Hintergrundjob beim Starten einer Windows GUI-Anwendung
Ist es möglich, es zu tun, aber ohne eine separate thread
erstellen zu müssen? (Das sah kompliziert aus und ich wollte das vermeiden).
Hinweis: Wenn ich es in der Nachrichtenschleife tun:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
LoadDB();
...
die GUI nicht-reagiert werden.
"Das sah kompliziert aus" - komplizierte Dinge zu tun ist kompliziert. –
Spawn einen Thread und legen Sie Ihre Routinen dort. – Ron
@NeilButterworth Ich bin in Ordnung, wenn es nötig ist *, aber ich wollte sagen "Gibt es keine andere Methode?". – Basj