+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

DesignerControl-Vorschauberechnung blockiert Schließen von Fenster


(Stephan Müller) #1

Hallo zusammen,

im Rahmen der Integration von List&Label in unsere CRM-Anwendung (C#/.NET) ist mir ein unschönes Phänomen aufgefallen: wenn man ein Fenster schließt, auf dem ein DesignerControl liegt, das aktuell noch seine Vorschau berechnet (weil Tabelle vielen Daten), dann blockiert der GUI-Thread mit folgenden Stacktrace:

S.W.F.UnsafeNativeMethods.DestroyWindow(System.Runtime.InteropServices.HandleRef hWnd) S.W.F.NativeWindow.DestroyHandle() S.W.F.Control.DestroyHandle() S.W.F.Form.ShowDialog(System.Windows.Forms.IWin32Window owner)
Wenn man jedoch die Vorschauberechnung als Benutzer manuell abbricht oder komplett durchlaufen lässt, dann ist alles gut und beim Schließen des Fensters mit dem DesignerControl blockiert der GUI-Thread nicht.

Meine Frage:
Wie kann ich beim Schließen des Fensters das DesignerControl so “töten”, dass eine eventuell noch laufende Vorschauberechnung den GUI-Thread nicht blockiert? Kann ich die Vorschauberechnung programmatisch abbrechen?

Was ich schon probiert habe:
EventHandler für das Form.Closing-Ereignis mit Abfrage auf DesignerControl.CanClose. Diese Methode liefert leider in dem obigen Szenario (Vorschauberechnung läuft) immer den Wert true.

Umgebung:
List&Label 23.0.6501.37264
C# / .NET 4.0/4.5.2
Windows 10

Gruß,
Stephan Müller.


(Stephan Müller) #2

Das Problem wird wohl nicht mehr auftreten mit dem nächsten Service Pack.