gpt4 book ai didi

c# - 如何在C#或.NET中遵循发布者/订阅者策略?

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:44 25 4
gpt4 key购买 nike

在C#中或.NET的BCL中的类或函数中,最适合遵循publisher/subscriber(aka。signals/slots)策略的语言构造是什么?

最佳答案

C#和VB中的事件是用于处理pub / sub的典型语言结构:

public class Publisher
{
public event EventHandler MyEvent;

private void RaiseEvent()
{
EventHandler handler = MyEvent;
if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
}

public class Subscriber
{
public void Subscribe(Publisher pub)
{
pub.MyEvent += MethodToCall;
}

private void MethodToCall(object sender, EventArgs e)
{
// This will be called from Publisher.RaiseEvent
}
}


备选方案包括 Reactive ExtensionsWPF Commanding

请注意,如果 Publisher是长期的,但 Subscriber应该是短暂的,则 Subscriber将需要取消订阅该事件-否则,由于以下原因, Publisher将保留对 Subscriber的引用:该事件,防止垃圾收集。

关于c# - 如何在C#或.NET中遵循发布者/订阅者策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3682608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com