我正在使用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开始? (抱歉格式错误,我对此没有经验。
答案 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=true
与aTimer.Start()
相同,aTimer.Enable=false
与aTimer.Stop()
的内容相同{/ 3}}