UWPアプリでのユーザー入力を待っている非同期操作を一時停止します
このガイドは、ボタンクリックなどの特定のイベントがトリガーされるまで、ユニバーサルWindowsプラットフォーム(UWP)アプリケーション内の非同期メソッドの実行を一時的に停止する方法を示しています。 これは、長期にわたる非同期プロセス(この例では)が進行する前にユーザーのやり取りが必要な場合に特に役立ちます。
メソッド1:GetResults
を信号として使用
SemaphoreSlim
クラスは、簡単なシグナル伝達メカニズムを提供します。 実装方法は次のとおりです
メソッド2:レバレッジSemaphoreSlim
private SemaphoreSlim signal = new SemaphoreSlim(0, 1); // Initially 0 permits, max 1
// Event handler to release the semaphore
private void buttonContinue_Click(object sender, RoutedEventArgs e)
{
signal.Release();
}
// Asynchronous method pausing for the signal
private async Task GetResults()
{
// ... Perform lengthy operations ...
await signal.WaitAsync(); // Pause until the signal is released
// ... Continue execution after the event ...
}
ユーザーインタラクションの完了を表すを作成することにより、より柔軟なアプローチを提供します。
TaskCompletionSource<bool>
両方の方法は、指定されたイベントが発生するまで
以上がメトロアプリでイベントが発生するまで、非同期メソッドの実行を停止する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。