Tôi có phương pháp này phát âm thanh, khi người dùng chạm vào màn hình, & Tôi muốn ngừng phát khi người dùng chạm lại vào màn hình. Nhưng vấn đề là phương pháp "DoSomething()" không dừng lại, nó vẫn tiếp tục cho đến khi nó kết thúc.chỉ cần dừng phương thức không đồng bộ
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;
}
Mọi trợ giúp sẽ được đánh giá cao.
Cảm ơn :)
Hãy thử tuyên bố 'keepdoing' là 'dễ bay hơi bool keepdoing = true;' Nhưng nếu 'doingsomething' mất quá nhiều thời gian để trả về, người dùng có thể nhấn vào màn hình hai lần do đó chuyển đổi qua lại' keepdoing' false và trở lại thành sự thật. –
doingsomething không mất nhiều thời gian, nhưng do vòng lặp, Dosomething() cần thời gian. & Tôi xin lỗi để nói, nhưng dễ bay hơi không hoạt động. – Jaydeep
Dễ bay hơi không phải là vấn đề, bởi vì mã sau khi chờ đợi luôn được gửi trở lại chủ đề giao diện người dùng ... nó không phải là vấn đề đồng bộ hóa. –