我有一个方法可以在用户点击屏幕时播放声音,而我希望当用户再次点击屏幕时停止播放声音。但问题是,“DoSomething()”方法不会停止,它会一直执行到完成。
bool keepdoing = true;
private async void ScreenTap(object sender, System.Windows.Input.GestureEventArgs e)
{
keepdoing = !keepdoing;
if (!playing) { DoSomething(); }
}
private async void DoSomething()
{
playing = true;
for (int i = 0; keepdoing ; count++)
{
await doingsomething(text);
}
playing = false;
}
任何帮助都将不胜感激。
谢谢 :)
keepdoing
声明为volatile bool keepdoing = true;
。但是,如果doingsomething
需要太长时间才能返回,用户可能会按两次屏幕,从而将keepdoing
切换为false,然后再切换回true。 - Matthew Watson