私はプロジェクトに取り組んでおり、助けが必要です。コード スニペットを次に示します。
private void MassInvoiceExecuted()
{
foreach (Invoice invoice in Invoices)
{
DoStuff(invoice);
//I'd like to wait 8 seconds here before the next iteration
}
RefreshExecuted();
}
これはどのように簡単に行うことができますか?私が試したことは次のとおりです。
private async void MassInvoiceExecuted()
{
foreach (Invoice invoice in Invoices)
{
DoStuff(invoice);
await Task.Delay(8000);
}
RefreshExecuted();
}
また、UI をフリーズせずに 8 秒間待機しましたが、RefreshExecuted();の直前にも約 30 秒間待機しました。私は明らかに async await に慣れていませんが、それは良い考えのように思えました。
とにかく、ボタンをクリックしてループを中止できるようにする必要があるため、UI をブロックせずに各反復後に 8 秒待つ必要があります。タイマーを検討しました。間隔を 8000 に設定し、正確に何を含む tick メソッドを作成しますか? MassInvoiceExecuted にあるすべてのものを tick メソッド内に入れることはできません。それは正しくないからです。
どんな助けでも大歓迎です。ありがとう!