Start Debugging

dotnet

440 件 · ページ6/44

C# アプリで Windows セッションのロック、ロック解除、ログオン、ログオフのイベントを検出する方法

デスクトップアプリやコンソールアプリでは SystemEvents.SessionSwitch を使い、Windows サービスでは OnSessionChange をオーバーライドし、あるいは WM_WTSSESSION_CHANGE を自分でフックします。3 つすべての .NET 10 コード、隠れた '.NET System Events' スレッド、サービスではログオンが見えるのにデスクトップアプリでは見えない理由、順序が入れ替わる通知、WTSQuerySessionInformation で現在のロック状態を問い合わせる方法を解説します。
2026-10-04 nunittestingdotnet

NUnit 5: Assert.ThrowsAsync は Task を返すようになり、await し忘れたテストは黙って成功します

NUnit 5.0.0 で Assert.ThrowsAsync、CatchAsync、DoesNotThrowAsync が本当の意味で非同期になりました。await を忘れるとアサーションは実行されません。何が壊れるのか、NUnit.Analyzers の NUnit2059 ルールが何を検出するのか、アップグレード前に確認すべき NUnit 5 のその他の変更点をまとめます。
2026-10-03 csharpdotnetasync

非 async メソッドでアロケーションなしに ValueTask を同期的に待機する方法

まず IsCompleted を確認し、GetAwaiter().GetResult() で結果を読み取れば、コストは 0 バイトです。ValueTask がまだ保留中の場合に限ってブロックし、その際は呼び出しごとに 72 から 208 バイトを割り当てる AsTask() ではなく、キャッシュしたイベントと UnsafeOnCompleted を使います。.NET 10 と .NET 11 RC1 で計測しました。

Agent Framework 1.23: 関数ミドルウェアが呼び出し対象のツールをついに差し替えられるように

Microsoft Agent Framework .NET 1.23.0 は FunctionInvocationContext.Function への代入を反映するようになり、ミドルウェアがツール呼び出しを別の AIFunction にリダイレクトできます。新しいヘルパー WrapWithPendingMiddleware により、残りのチェーンも呼び出しに関与し続けます。

EF Core 11 クエリにおける EF.Parameter と EF.Constant の違い

EF.Constant はキャプチャした値を SQL リテラルとして埋め込み、EF.Parameter はリテラルを SQL パラメーターに変換します。基本は EF Core の既定のままにし、動的に組み立てた式ツリーが呼び出しのたびに再コンパイルされるのを防ぐには EF.Parameter を使います。EF.Constant は、値の種類が少なく、データの偏りが大きくて値ごとに別のプランが必要な場合だけに使います。

.NET 10 の Volatile.Read と Volatile.ReadBarrier の違い

Volatile.Read は 1 つの位置に対するアクワイア読み取りです。.NET 10 で追加された Volatile.ReadBarrier は、それ以前のすべての読み取りにアクワイアセマンティクスを与えるフェンスです。フラグや公開された参照には Volatile.Read を、seqlock のように通常の読み取りやアトミックでない読み取りをまとめて次のメモリアクセスの前に完了させたい場合には ReadBarrier を使います。

.NET MAUI 10.0.110 がエージェント型リークハンターの見つけた6件のメモリリークを修正

MAUI 10.0.110 では BackButtonBehavior、SwipeItemView、ListView.RefreshCommand、IndicatorView、GeometryGroup、TableView の6件のリーク修正が出荷されました。その多くは gh-aw ワークフローが報告から修正まで行ったもので、CommunityToolkit.Mvvm の RelayCommand を使っている場合に特に影響します。

Aspire 13.6 のダッシュボードは直近 10 回の実行を SQLite に保持します

Aspire 13.6.0 でダッシュボードが永続化されます。リソースのスナップショットとテレメトリは SQLite データベースに保存され、AppHost はアプリケーションごとに最大 10 回分の実行を保持し、完了した実行は読み取り専用で参照できます。Run、Resume、None の各モードの動作と、スタンドアロンダッシュボードの設定方法を解説します。

修正: .NET MAUI 10 で UseMaterial3 を有効にすると Android のステータスバーアイコンが見えなくなる

MAUI 10.0.100 はステータスバーアイコンの色を colorPrimary から決定しますが、これは Material 3 の surface とは明るさが逆になるため、白地に白、黒地に黒になります。Microsoft.Maui.Controls を 10.0.101 以降に更新するか、MainActivity で AppearanceLightStatusBars を設定し直してください。
前へ 次へ