Thema: FastSwitch

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#13

AW: FastSwitch

  Alt 25. Dez 2013, 10:48
Wieso verwendest Du nicht einfach einen separaten Thread zum Laden des nächsten Plugins. Dieser Thread meldet, wenn er fertig ist und ein weiteres Plugin laden kann. Während der Thread beschäftigt ist, kann man eben nicht scrollen. Das ersetzt deine statische Konstante.

Wenn ich eine Liste von Dingern habe, bei denen ich nur alle 2 Sekunden weiterklicken kann, ist das -mit Verlaub- unzumutbar. Das sind doch bloß irgendwelche DLL, was soll daran 2 Sekunden dauern?
Genau das möchte ich verhindern.. Die Anwendung soll nicht Multithread fähig sein.
Also es soll und darf nicht mehr als ein Plugin zur gleichen zeit geladen werden.

Die meckern ja schon wenn die eine last von 20% CPU haben was soll das erst geben wenn man 2 gleichzeitig starten kann.

Mein Problem ist eigentlich ganz einfach zu erklären.
Der Thread ist nicht beendet wenn das neue Plugin startet.
bzw.. der nächste BeginThread aufgerufen wird.

Wie kann ich garantieren das dieser vorher 100% beendet wurde.

Zitat:
Das sind doch bloß irgendwelche DLL, was soll daran 2 Sekunden dauern?
Wenn man das so Pauschal sagen könnte ja, ist aber nicht der Fall

Ist es möglich das WaitForSingleObject Probleme macht?

Delphi-Quellcode:
    hEvent := CreateEvent(nil, True, False, nil);
    PostThreadMessage(RenderThreadId, WM_QUIT, 0, hEvent);
    WaitRe := WaitForSingleObject(hEvent, 1000);
    CloseHandle(hEvent);
im Thread signalisiere ich wenn er beendet wurde
  SetEvent(Msg.LParam);

Das trifft aber nicht rechtzeitig ein egal ob ich jetzt 1 oder 10 Sekunden übergebe


gruss

Geändert von EWeiss (25. Dez 2013 um 11:10 Uhr)
  Mit Zitat antworten Zitat