【问题标题】:Fire an event when an event is subscribed to [duplicate]订阅事件时触发事件[重复]
【发布时间】:2022-01-08 21:02:48
【问题描述】:

我有一个类实现了一个在不活动时触发的事件。

public event EventHandler Inactivity;

现在,我只想在有事件不活动的订阅者时检查不活动。那么有什么方法可以在订阅后触发事件?

我想到了这样的事情:

Inactivity.Subscription += OnInactivitySubscription

private void OnInactivitySubscription(object sender, EventArgs e)
{
    StartActivityCheck();
}

提前致谢。

【问题讨论】:

    标签: c# events event-handling


    【解决方案1】:

    根据这个thread找到解决方案。

    public event EventHandler Inactivity
    {
        add
        {
            Inactivity += value;
            if (!IsAlreadyCheckingForActivity)
            {
                StartActivityCheck();
            }
                    
        }
        remove
        {
            Inactivity -= value;
        }
    }
    

    “如果你的函数应该是线程安全的,请小心,在这种情况下你需要一个锁来确保它被同步。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多