我有一个音频播放器,可以加载配置文件,其中包含要以特定间隔播放的文件列表。就像5个文件应该在09:30到11:30之间循环 - 这是一个需要背景音乐的图书馆应用程序。
当我在一个区间之外时,我会遍历所有时间间隔(可能在下一个间隔开始前2小时)然后如果我发现现在没有任何东西可以播放 - 我会睡一会然后再尝试试。
我有一个问题,在检查这些时间间隔大约3-4个小时之后我会得到堆栈溢出(通常是在晚上,因为客户端已开启,但晚上没有音乐播放)。
private void PlayNextFile()
{
Application.DoEvents();
if (currentState == PlayerState.Started)
{
//if we find the next slide then play it
AudioSlide slideToPlay = FindNextSlide();
if(slideToPlay != null)
{
PlaySlide(slideToPlay);
}
else
{
MedianLog.Log.Instance.LogDebug("Did not find a slide to play now, will check again in a second");
System.Threading.Thread.Sleep(1000);
PlayNextFile();
}
}
}
有关如何解决此异常的任何想法吗?
答案 0 :(得分:0)
你只是用不受控制的递归调用来填充你的堆栈。
while循环将是一个更好的解决方案。 这样的事情应该正确地做到:
.htaccess