如何在C#中创建自定义事件

时间:2016-02-28 10:22:12

标签: function events c#-4.0 delegates custom-events

我正在尝试使用C#wiforms开发应用程序。我想只在互联网连接启动时才在类中执行void sendEmail(){}功能。我使用的方法是bool checkConnection(){}函数无限循环while循环并将ping请求发送到google.com。如果ping成功,sendEmail(){}函数将调用checkConnection()函数。

但我知道这不是这样做的最佳做法。我对C#中的自定义事件非常困惑。如何使用自定义事件来完成此任务。希望通过简单的解释得到答案。

提前致谢

1 个答案:

答案 0 :(得分:1)

我知道您正在尝试在c#中构建类似功能的调度程序任务。根据我的理解,Windows服务将为您执行任务,例如在监听互联网可用性时,然后在应用程序上线时执行邮件发送操作。

W.R.To Events,您可以构建自己的事件引擎,在应用程序运行时引发应用程序事件,然后会有列出待处理任务的数据库条目。将有一个后台工作,如Windows服务,读取数据库,并根据互联网的可用性或在某些条件下执行作业。

如果您可以更清楚确切的用例以及您到目前为止所尝试的内容,社区可以更好地帮助您。

样品 class Observable {     公共事件ImageUploadeventHandler InternetcOnnected;

public void DoSomething()
{
    ImageUploadeventHandler handler = InternetcOnnected;
    if (handler != null)
    {
        handler(this, EventArgs.Empty);
    }
    }
}
class Observer
{
    public void HandleEvent(object sender, EventArgs args)
    {
        // upload the image to the online service
    }
}