ユーザーが画面をタップすると、サウンドを再生するこのメソッドがあります。&ユーザーが画面を再びタップすると、再生を停止します。しかし、問題は "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 = trueとkeepdoing'; 'しかしdoingsomething'を返すために時間がかかりすぎる'場合は、ユーザが画面を二回、それによってfalseに 'keepdoing'を切り替え、バックtrueに押すことができます。 –
doingsomethingは時間がかかりませんが、ループのためにDosomething()に時間がかかります。 &申し訳ありませんが、揮発性は機能しませんでした。 – Jaydeep
揮発性は問題ではありません。なぜなら、待機した後のコードは常にUIスレッドに返されるからです。同期の問題ではありません。 –