Eine Lade-Ähnliche-Funktion Programieren ...
-
Ich möchte folgendes ... ich habe ( angenommen ) ein Programm geschrieben das für eine Option sehr lange braucht ... und ich möchte das WÄHREND er diese Option ausführt etwas angezeigt wird ... vllt. ein Rotierender Strich ... oder eine art Ladebalken ... nur leider passiert in der Konsole immer alles hinterieinander ... wie kann ich das machen das ich sowas machen kann ?
-
Indem du threads verwendest.
-
bitte was ? das musste mir mal erlären
-
C++Laie1 schrieb:
bitte was ? das musste mir mal erlären
Du könntest ja wenigstens erstmal versuchen selber herauszufinden, was das ist wenn du es noch nicht weißt.
Bei konkreten Fragen wird dir dann sicher gern weitergeholfen, aber nicht wenn du von Anfang an zu faul bist erst mal selber zu suchen!
-
ok ... ich hab mal was gefunden ...
#include <windows.h> #include <process.h> #include <stdio.h> using namespace std; DWORD WINAPI ThreadFunction(void *param); int main() { int param = 100; HANDLE hThreadHandle = CreateThread( 0, 0, ThreadFunction, ¶m, 0, 0 ); WaitForSingleObject(hThreadHandle, INFINITE); // Wartet auf das Ende des Threads } DWORD WINAPI ThreadFunction(void *param) { char sym[] = "|/-\\"; int i; int zahl = 8000 ; for ( int j = 0 ; j < zahl ; j++ ) { for ( i = 0 ; i < 4; ++i ) { printf("%c\b", sym[i]); Sleep(80); } } return 0; }
Wo kommt das rein was man hauptsächlich ausführen will ? Die strich animation is ja schon drin ... die wird nebenher ausgeführt ... aber wo kommt dann das hin was hauptsächlch ausgeführt wird ?
-
Du hast aber jetzt schon so etwa verstanden, was Threads sind?
Allgemein ist das voellig egal und du kannst "was man hauptsächlich ausführen will" sonst wo hin packen. Muss noch nicht mal in extra Threads sein, du kannst eine Statusanzeige auch innerhalb deines "was man hauptsächlich ausführen will" ausgeben (am Ende einer Schleife oder irgendwo mal an markanten Stellen zwischen einigen Prozeduraufrufen, etc.).
In deinem Code wuerde es wohl sinn machen, das "was man hauptsächlich ausführen will" direkt nach dem Starten des Threads einzufuegen.
Stattdessen im "Hauptprozess" nur auf das Ende deines tollen Animations-Threads zu warten und nichts zu tun macht auf jeden Fall wenig sinn.edit: Lesen hilft...
-
und wie erstelle ich einen Multi-Thread ??
hab gelesen soll sehr kompliziert sein ...
-
C++Laie1 schrieb:
und wie erstelle ich einen Multi-Thread ??
hab gelesen soll sehr kompliziert sein ...Nicht komplizierter als dein eigenes Code Beispiel, das du gepostet hast.
-
einfach mit
DWORD WINAPI ...(void *param) ...
eine neue Threadfunktion erstellen und sie dann nach
HANDLE hThreadHandle = CreateThread( 0, 0, ThreadFunction, ¶m, 0, 0 ); ...
einfügen ?