Ich habe versucht, eine F # -Implementierung von einigen C# -Code erstellen, die Dispatcher.BeginInvoke verwendet, um die Benutzeroberfläche von einem anderen Thread zu bearbeiten. Ich habe jedoch Schwierigkeiten, den Code zum Laufen zu bringen.F # Winforms Dispatcher BeginInvoke Delegat Problem zur Laufzeit
Ich habe ein paar verschiedene Implementierungen versucht, aber ich bekomme immer eine "Zusätzliche Informationen: Illegale Definition für Laufzeit implementiert Delegate-Methode." Ausnahme beim Aufruf der ToggleVisibility-Funktion.
Jede Eingabe wäre sehr dankbar erhalten. Hier ist der Code: -
open System
open System.Drawing
open System.Windows.Forms
type ToggleVisibiltyDelegate() = delegate of unit -> unit
type NotifyWindow() as form =
inherit Form()
let label1 = new Label()
do form.InitializeForm
member this.ToggleVisibility() =
if (this.Visible) then
this.BeginInvoke(new ToggleVisibiltyDelegate(fun() -> this.Hide()))
else
this.BeginInvoke(new ToggleVisibiltyDelegate(fun() -> this.Show()))