(Begin)InvokeOnMainThread 呼び出しが再帰的に呼び出される状況に対処するための推奨される方法を知りたいです。
シナリオは次のとおりです...ダウンロードを開始するUIボタンを押すと、ダウンロードがオーディオ再生を開始し、オーディオ再生がUIを変更します。
コードは次のようになります。
void ButtonPressHandler(object sender, EventArgs args)
{
BeginInvokeOnMainThread(()=> {
StartDownload(CompletionHandler);
});
}
void CompletionHandler()
{
BeginInvokeOnMainThread(()=> {
StartPlayback(PlaybackFinished);
});
}
void PlaybackFinished()
{
BeginInvokeOnMainThread(()=> {
UpdateUI();
});
}
この状況に対処するための推奨される方法は何ですか? UI が更新されません。BeginInvokeOnMainThread と InvokeOnMainThread を試しました。デッドロック状態になる可能性はありますか?
どんな助けでも大歓迎です。