F # Winforms Dispatcher BeginInvoke Ошибка делегирования во время выполнения

Я попытался создать реализацию F # некоторого кода на С#, который использует Dispatcher.BeginInvoke для управления пользовательским интерфейсом из другого потока. Однако я изо всех сил пытаюсь заставить код работать.

Я пробовал несколько разных реализаций, но я всегда получаю "Дополнительная информация: Недопустимое определение для исполняемого метода делегирования". исключение при вызове функции ToggleVisibility.

Любой вход будет очень благодарен. Вот код: -

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()))
1 ответ

Решено! Как трудно расходовать столько времени на различные методы, когда мне нужно было всего лишь удалить две круглые скобки, поворачивая

type ToggleVisibiltyDelegate() = delegate of unit -> unit

в

type ToggleVisibiltyDelegate = delegate of unit -> unit

licensed under cc by-sa 3.0 with attribution.