6
看起來像弱事件或更具體地說WeakEventManager
或IWeakEventListener
不在.Net核心中可用,因爲它們是WindowsBase程序集的一部分。使用.NetCore中的弱事件
有沒有這個功能的替代品?
事件通常是應用程序中內存泄漏的來源,而弱引用是處理此問題的好方法。
我無法找到計算器關於這個主題的信息
看起來像弱事件或更具體地說WeakEventManager
或IWeakEventListener
不在.Net核心中可用,因爲它們是WindowsBase程序集的一部分。使用.NetCore中的弱事件
有沒有這個功能的替代品?
事件通常是應用程序中內存泄漏的來源,而弱引用是處理此問題的好方法。
我無法找到計算器關於這個主題的信息
圖書館Nito.Mvvm.Core有WeakCanExecuteChagned
的類,它使用,你可以作爲一個起點使用命令類弱事件寫你的經理由WeakCollection<EventHandler>
支持。
下面是一個簡單的示例,其中使用自定義類的事件名爲Foo
,該事件接收FooEventArgs
對象。
public class MyClass
{
private readonly WeakCollection<EventHandler<FooEventArgs>> _foo = new WeakCollection<EventHandler<FooEventArgs>>();
public event EventHandler<FooEventArgs> Foo
{
add
{
lock (_foo)
{
_foo.Add(value);
}
}
remove
{
lock (_foo)
{
_foo.Remove(value);
}
}
}
protected virtual void OnFoo(FooEventArgs args)
{
lock (_foo)
{
foreach (var foo in _foo.GetLiveItems())
{
foo(this, args);
}
}
}
}
很好的答案,希望我可以投兩次,謝謝 –
直接使用'WeakReference'。 – SLaks
@SLaks你可以善意地演示和使用WeakReference的例子或者指向我的例子,無論哪種方式,我會讓你的答案是正確的答案。 –