Prozessorleistung auf eine Funktion legen
-
Hi @all,
ich habe folgendes Prob. Wenn ich eine Funktion bei mir im Programm ausführe, dauert es ziemlich lang bis es sichtbar wird.
Also genau gesagt, ist es eine recht einfache Funktion. Ich lasse Komponenten ein- bzw. ausblenden. Es dauert so lange, weil ich fast zeitgleich ein Encoderprozess anhalte.GetDlgItem(IDC_INKPICTURE1)->ShowWindow(TRUE); GetDlgItem(IDC_VIDEO)->ShowWindow(FALSE); // When finished, stop the preview. if ( SUCCEEDED( hr ) ) { hr = pPreview->Stop(n_lCookieTemp); }Es dauer ca. 4 sek. bis das IDC_INKPICTURE1 sichtbar ist. Es soll aber sofort sichtbar sein, wenn ich auf den Button klicke. In Delphi würde man sowas mit DoubleBuffered machen um mehr Prozessorleistung auf diese Funktion zu legen und damit das Programm an dieser Stelle schneller machen.
Gibt es sowas auch für C++?
-
Da WIndows auf Nachrichten reagiert und du ur eine Nachricht sendest musst du dem Nachrichtenloop in deinem Program auch Zeit geben es zu diese zu verarbeiten. Da die Funktion aber noch nicht beendet ist wir die MessageLoop nicht verarbeitet.
Lösung
UpdateWindow()
oder
Threads
-
Danke!
UpdateWindow(); funktioniert super
