Mam tę metodę, która odtwarza dźwięk, kiedy użytkownik stuka w ekran, & Chcę, aby przestał grać, gdy użytkownik ponownie dotknie ekranu. Ale problem polega na tym, że metoda "DoSomething()" nie zatrzymuje się, trwa aż do końca.po prostu zatrzymaj metodę asynchroniczną
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;
}
Każda pomoc zostanie doceniona.
Pozdrowienia :)
Spróbuj deklarując '' keepdoing' jako lotnego bool keepdoing = true; '' doingsomething' Ale jeśli trwa zbyt długo, aby wrócić, użytkownik mógłby nacisnąć ekran dwa razy w ten sposób przełączanie 'keepdoing' false iz powrotem na true. –
doingsomething nie trwa długo, ale ze względu na pętlę, Dosomething() wymaga czasu. i przykro mi to mówić, ale lotny nie działał. – Jaydeep
Niestabilna nie jest problemem, ponieważ kod po oczekiwaniu jest zawsze wysyłany z powrotem do wątku interfejsu użytkownika ... nie jest to problem z synchronizacją. –