UWP中如何利用异步编程跳出死循环

UWP中,我设置了两个按钮,单击第一个按钮进行一个循环,单击第二个按钮停止这个循环,但是不管怎么处理按下第一个按钮以后都成了一个死循环,程序呈现卡死状态,如何能够解决?

又是一个自己解决的问题。。。

        private async void FirstButton_Click(object sender, RoutedEventArgs e)
        {
            SecondButton.Visibility = Visibility.Visible;
            FirstButton.Visibility = Visibility.Collapsed;

            try
            {
                do
                {
                    //写要循环的内容
                } while (SecondButton.Visibility == Visibility.Visible);
            }
            catch (Exception){ //写error情况 }
        }

                 async Task<int> name() // name为自己定义的函数
        {
                    await Task.Delay(10); // ()里面的数字单位是ms
                        return value; // value自己定义
                }

看你的循环怎么写,在第一个按钮的循环里增加一个信号量的判断,如果设置就退出,在另一个按钮设置信号量。