var为空时重置计时器

时间:2013-12-18 10:29:13

标签: c# timer

我正在使用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开始? (抱歉格式错误,我对此没有经验。

1 个答案:

答案 0 :(得分:1)

好吧,您可以检查所有数组,样本:

// 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();
    }
}

为确保aTimer.Enabled=trueaTimer.Start()相同,aTimer.Enable=falseaTimer.Stop()的内容相同{/ 3}}