C# 当变量为空时重置计时器

C# 当变量为空时重置计时器,c#,timer,C#,Timer,我正在使用C#创建一个应用程序,当某些Youtube视频被请求并通过我创建的网站放入数据库时,它可以播放这些视频。然后我正在构建的程序将接受请求并在Chrome中打开它并播放它。视频完成后,它将终止webbrowser.exe进程。当其终止时,该记录将从数据库中删除,这样歌曲就不会再次播放。我制作的计时器将再次开始,并等待5分钟播放下一首歌曲。这很好,但问题是,当数据库中没有记录时,程序崩溃,如何让它重新启动计时器? 这是我的代码片段,问题就在这里 Execute(); Init

我正在使用C#创建一个应用程序,当某些Youtube视频被请求并通过我创建的网站放入数据库时,它可以播放这些视频。然后我正在构建的程序将接受请求并在Chrome中打开它并播放它。视频完成后,它将终止webbrowser.exe进程。当其终止时,该记录将从数据库中删除,这样歌曲就不会再次播放。我制作的计时器将再次开始,并等待5分钟播放下一首歌曲。这很好,但问题是,当数据库中没有记录时,程序崩溃,如何让它重新启动计时器? 这是我的代码片段,问题就在这里

    Execute();
    InitializeComponent();
    var aTimer = new System.Timers.Timer();
    aTimer.Elapsed += new ElapsedEventHandler((sender, e) => Execute());
    aTimer.Interval = 300000;
    aTimer.Enabled = true;
}
public void Execute()
{
    int Tijd;
    int Videolengte;
    string resultaat;
    string URL = "";

    Database db = new Database(CONNECTION_STRING);
    object[] result = db.GetFirstRecord();


        URL = (string)result[1];
        Process browser = Process.Start(@"chrome.exe",
              "http:\\www.youtube.com/watch?v=" + URL);
        Audio.SetApplicationVolume(APP, 15);

第节,我需要做一个if语句来检查var结果是否为空,但是我能让它在aTimer上再次启动吗?(很抱歉格式不好,我对此没有经验。

好的,您可以检查所有数组,以获取示例:

// check if there is something in the collection
if (result != null && result.Any() && result.Count >= 1)
{
    URL = result[1] as string;
    if (!string.IsNullOrEmpty(URL))
    {
       // continue safe ...
    }    
    else
    {
        // stop the timer... or something like this
        aTimer.Stop();
    }
}

只是为了确保,与相同,如与相同,请删除所有不相关的代码,这是一种混乱。如果不正确,版主将为您进行格式化。完成,现在看起来更好。只需在
Execute()
中检查数据库是否为空,如果是,则返回。计时器将在下一个间隔再次计时