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

Function 如何在C中创建自定义事件#,function,events,c#-4.0,delegates,custom-events,Function,Events,C# 4.0,Delegates,Custom Events,我正在尝试使用C#wiforms开发一个应用程序。仅当internet连接打开时,我想在类中执行void sendmail(){}函数。我使用的方法是boolcheckconnection(){}函数无限循环while循环,并向google.com发送ping请求。如果ping成功,checkConnection()函数调用sendmail(){}函数 但我知道这不是最好的做法。我对C#中的自定义事件感到非常困惑。如何使用自定义事件来完成此任务。期待一个简单解释的答案 提前感谢我知道您正在尝试在

我正在尝试使用C#wiforms开发一个应用程序。仅当internet连接打开时,我想在类中执行
void sendmail(){}
函数。我使用的方法是
boolcheckconnection(){}
函数无限循环while循环,并向google.com发送ping请求。如果ping成功,
checkConnection()
函数调用
sendmail(){}
函数

但我知道这不是最好的做法。我对C#中的自定义事件感到非常困惑。如何使用自定义事件来完成此任务。期待一个简单解释的答案


提前感谢

我知道您正在尝试在c#中构建类似调度程序任务的功能。根据我的理解,windows服务将为您完成以下任务:侦听internet的可用性,然后在应用程序联机时执行邮件发送操作

对于事件,您可以构建自己的事件引擎,该引擎在应用程序运行时引发应用程序事件,然后会出现列出挂起任务的数据库条目。将有一个后台作业,如windows服务,它读取数据库,并根据internet的可用性或在某些条件下执行作业

如果您能够更清楚地了解确切的用例以及您迄今为止所做的尝试,社区可以更好地帮助您

样品 类可观测 { 公共事件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
    }
}

如果internet连接可用,我的程序每五分钟捕获一次计算机屏幕,并通过电子邮件发送这些快照。如果internet连接不可用,则不会捕获屏幕。我已经编写了捕获屏幕的功能,并将其保存在一个特定的文件夹中作为jpg。是否要运行这些捕获和发送任务定期仅在internet连接中打开。很好,然后您可以使用中提供的示例:检查internet连接,然后执行任务。如果该方法返回
true
,您可以引发一个事件,在文件夹中获取图像,然后通过邮件发送。我已经使用该函数获取internet连接。请您解释一下如何实现此函数响应所引发的“C#自定义事件”。我想..如果(CheckForInternetConnection()){sendMail();}这不是正确的方法。我添加了一个示例,但是为了提供更多关于事件的详细信息,请参考此链接,谢谢saravanan。我将仔细阅读。