相关疑难解决方法(0)

F#可观察事件是否消除,调解或与弱引用的需要无关?

由于可观察性通常IDisposable如何改变,如果有的话,需要在事件处理程序中使用弱引用,或者任何其他基于事件的内存泄漏/ GC锁定引用?

虽然我主要关心/需要的是WPF,但我正在寻找更广泛的例子,并试图了解我可能需要弱引用的地方.

F#Observable.add没有提供解开事件的方法,因此我认为它不太可能成为泄密源.示例代码:

type Notifier() = 
    let propChanged = new Event<_,_>()
    member __.Foo() = ()
    interface INotifyPropertyChanged with
        [<CLIEvent>]
        member __.PropertyChanged = propChanged.Publish
    abstract member RaisePropertyChanged : string -> unit
    default x.RaisePropertyChanged(propertyName : string) = propChanged.Trigger(x, PropertyChangedEventArgs(propertyName))


Notifier() :?> INotifyPropertyChanged
|> Observable.add(fun _ -> printfn "I'm hooked on you")
Run Code Online (Sandbox Code Playgroud)

f# garbage-collection memory-leaks

6
推荐指数
1
解决办法
190
查看次数

标签 统计

f# ×1

garbage-collection ×1

memory-leaks ×1