gpt4 book ai didi

c# - 如何在 Xamarian iOS 应用程序中单击按钮 X 秒后触发事件?

转载 作者:行者123 更新时间:2023-11-29 00:06:04 28 4
gpt4 key购买 nike

我正在自学 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 秒后触发事件?

最佳答案

示例代码。

Timer timer = new Timer();
timer.Interval = 60000;
timer.Elapsed += new ElapsedEventHandler((x,y) => {
//Do whatever you want
timer.Stop();
});

将以下代码放入按钮点击处理程序中,并将计时器变量设置为全局变量。

  timer.Start();

或者您可以将所有内容保留在按钮的点击处理程序中,这没什么大不了的。

说明:计时器类有一个名为 Elapsed 的事件,当计时器的 Interval 中指定的毫秒数过去时,将调用该事件。与线

timer.Elapsed += new ElapsedEventHandler((x,y) => {...

我们正在分配一个委托(delegate)(虚拟函数),以便在计时器到时时调用。因此,每 Timer.Interval 毫秒都会调用大括号{}内的任何代码。我们当时停止计时器,因为我们不希望它继续运行并生成大量事件。

更新2:

通常,事件处理程序是使用

定义的
return_type functionName(object sender, EventArgs e);

但是由于委托(delegate)是虚拟的,因此参数也是虚拟的。 x 对应于发送者,y 对应于 e

该事件处理程序代码也可以编写如下

void someFunction(object sender, ElapsedEventArgs e)
{
timer.Stop();
}

然后,

timer.Elapsed += new ElapsedEventHandler(someFunction);

至于“=>”,您可以阅读有关 Lambda 表达式 Here 的内容。

关于c# - 如何在 Xamarian iOS 应用程序中单击按钮 X 秒后触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48025022/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com