2026-08-05 errorscsharpdotnet 修正: C# で Task.WhenAll を待機したときの AggregateException "One or more errors occurred" await Task.WhenAll は失敗のうち 1 つしか再スローしません。WhenAll のタスクを変数に保持し、Exception.InnerExceptions を読めばすべてのエラーを確認できます。
2026-08-05 errorscsharpcsharp-14 対処法: C# の CS1998 "This async method lacks 'await' operators and will run synchronously" CS1998 は async メソッドに await がなく同期的に実行されることを意味します。async を外して Task.FromResult を返すか、忘れていた await を追加してください。
2026-07-26 csharpdotnetdotnet-11 .NET 11 で TimeProvider と FakeTimeProvider を使って時間依存コードをテストする方法 DateTime.UtcNow、Stopwatch、Task.Delay を System.TimeProvider に置き換えて、テストから時計を制御します。依存性注入への登録、FakeTimeProvider.Advance と SetUtcNow、タイムアウトや PeriodicTimer ベースの BackgroundService のテスト、そして Advance と継続処理の落とし穴と xUnit v2 の問題まで解説します。
2026-07-25 migrationcsharpdotnet レガシーな C# コードベースでブロッキングな .Result/.Wait() 呼び出しを全面的な非同期へ移行する 既存の .NET コードベースから sync-over-async を取り除くための段階的な手順書です。アナライザーで棚卸しし、ThreadPool の枯渇を計測し、呼び出しチェーンを 1 本ずつ変換して、.NET 11 で件数をゼロまで削り込みます。
2026-07-24 comparisoncsharpdotnet C# の .Result vs .Wait() vs GetAwaiter().GetResult() vs await: どれを使うべきか await はほぼ常に正しい答えです。本当にブロックしなければならないときは、GetAwaiter().GetResult() が元の例外をスローするため .Result や .Wait() より優れています。.NET 11 と C# 14 のための判断マトリクスです。
2026-07-21 errorscsharpcsharp-14 解決: CS4014 "Because this call is not awaited, execution of the current method continues" in C# CS4014 は Task を返すメソッドを await せずに呼び出したことを意味します。await を追加するか、意図的な fire-and-forget なら _ = で破棄し、例外を処理してください。
2026-07-20 csharpdotnetdotnet-11 解決: C# で async メソッドに対して .Result や .Wait() を呼ぶとデッドロックする SynchronizationContext が存在する場合、.Result や .Wait() で async の Task をブロックするとデッドロックします。なぜハングするのか、.NET 11 と C# 14 でどう解決するかを説明します。
2026-07-20 flutterdartriverpod Riverpod 3.0 の自動プロバイダーリトライを無効化する方法 Riverpod 3.0 はデフォルトで失敗したプロバイダーを最大 10 回リトライします。null を返す retry 関数を ProviderScope、ProviderContainer、または個々のプロバイダーに渡すことで、無効化したり回数を制限したりできます。
2026-07-13 flutterdartasync Flutter で setState-after-dispose クラッシュを避けるために dispose で StreamSubscription をキャンセルする方法 ユーザーが画面を離れた後も stream はイベントを発行し続け、その onData がすでに破棄された State に対して setState を呼び、Flutter は例外を投げます。subscription を保持し、super.dispose の前に dispose でキャンセルすれば、コールバックは死んだ widget の上で二度と発火しません。Flutter 3.44 向けの完全なパターンです。
2026-07-13 flutterdartasync Flutter で非同期の中断後に mounted チェックで setState を守る方法 await のあと、ウィジェットはすでに破棄されている場合があり、setState を呼ぶと例外が投げられます。再開を if (!mounted) return; で守り、さらに良いのは、それを引き起こす処理自体をキャンセルすることです。Flutter 3.44 向けの完全なパターンを解説します。