订阅事件时触发事件

Fire an event when an event is subscribed to

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

public event EventHandler Inactivity;

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

我想到了这样的事情:

Inactivity.Subscription += OnInactivitySubscription

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

提前致谢。

基于此thread找到解决方案。

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

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