?
guten morgen
ich entwickle ein relativ großes programm weiter, welches viele berechnungen macht.
nun gibt es bei den berechnungen kein anhaltspunkt, das der pc rechnet außer man hört, wie er rattert. Deswegen würde ich gerne eine progressbar einbauen.
die berechnungen selber werden durch externe programme gemacht, welche mit:
try{
objProcess = gcnew System::Diagnostics::Process();
objProcess->StartInfo->FileName = _steuerelement->CalPath+"\\...";
objProcess->StartInfo->WindowStyle=System::Diagnostics::ProcessWindowStyle::Hidden;
objProcess->Start();
//Wait until the process passes back an exit code
objProcess->WaitForExit();
//Free resources associated with this process
objProcess->Close();
}
catch(Exception^ ex){ ...
ausgeführt werden.
da es sehr viele verschiedene berechnungen gibt möchte ich nicht jede einzelne berechnung aus einem thread starten und hab mir was anderes überlegt:
in meiner haupt form lass ich einen threat laufen, der anhand der processID in regelmäßigen abständen die cpu auslastung des processes ausliest und ab einer bestimmten schwelle die progressbar startet und beendet. die processID's der externen progs würd ich dann an die fkt in der hauptform übergeben. so würde ich nur einen threat laufen lassen.
is das überhaupt möglich so wie ich mir das vorstelle? wenn ja, wie liest man die cpu auslastung aus, und wie bekomm ich die processID vom hauptprogramm, aus denen die verschiedenen exe'n gestartet werden?
oder hat jemand vielleicht eine bessere idee wie man sowas macht?
die progressbar soll einfach nur laufen, also nich den fortschritt anzeigen.
hoffe jemand kann mir dabei helfen.
gruß part