我正在教自己C#,作为其中的一部分,我正在尝试开发一个iOS倒计时器应用程序,即在点击计时器启动按钮X秒后播放.wav声音文件,因为计时器值已经从X到0。
为了尝试这样做,我尝试使用System.Timers命名空间,但一直无法弄清楚如何编程上述倒数计时器。下面是我的不完整代码(代码显然不符合上述功能,但可能是完成该功能的完整代码的一部分):
partial void UIButton1416_TouchUpInside(UIButton sender)
{
url = NSUrl.FromFilename("Sounds/bell.wav");
bell = new SystemSound(url);
int RoundedTimerValue = Convert.ToInt32(Math.Round(TimerSlider.Value, 0));
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 60000;
timer.Enabled = true;
}
是否有人知道如何创建所描述的倒数计时器/点击按钮后X秒触发事件?
答案 0 :(得分:1)
示例代码。
timer.Start();
将以下代码放入按钮单击处理程序中,并将计时器变量设为全局。
timer.Elapsed += new ElapsedEventHandler((x,y) => {...
或者您可以将所有内容保留在Button的点击处理程序中,这不是什么大问题。
<强>说明:强> timer类有一个名为Elapsed的事件,当计时器Interval中指定的毫秒数结束时调用该事件。与行
return_type functionName(object sender, EventArgs e);
我们正在分配一个在定时器启动时调用的Delegate(虚函数)。因此,大括号{} 中的任何代码都将在每个 Timer.Interval 毫秒内调用。我们当时停止计时器,因为我们不希望它继续运行并产生很多事件。
更新2:
通常,使用
定义EventHandlersvoid someFunction(object sender, ElapsedEventArgs e)
{
timer.Stop();
}
但由于委托是虚拟的,参数也是如此。 x对应发件人,y对应e 。
该事件处理程序代码也可以写成如下
timer.Elapsed += new ElapsedEventHandler(someFunction);
然后,
let results1 = (query1) // ["1","2"]
let results2 = (query2) // ["3","4"]
for r in MERGE_RESULTS(results1,results2) return r // ["1","2","3","4"]
至于'=&gt;'你可以阅读Lambda表达式Here