Start Debugging

dotnet

440 件 · ページ4/44

FileSystemWatcher とポーリングの比較: .NET でネットワーク共有上のファイル変更を検出する

SMB や NFS の共有では、ポーリングが信頼できる情報源であり、FileSystemWatcher はせいぜいヒントにすぎません。FileSystemWatcher は Linux と macOS ではリモートの変更を見逃し、ネットワーク上の 64 KB バッファーであふれ、接続が切れると完全に停止します。定期的なスナップショットの差分を使い、ウォッチャーは早めのスキャンを促すだけにしてください。.NET 10.0.10 で検証済みです。

C# で待機するときの Thread.Sleep と Task.Delay と SpinWait の違い

非同期コードでの時間指定の待機には await Task.Delay を使い、Thread.Sleep は自分が所有する専用スレッドでのみ使い、SpinWait はロックフリーのコード内でのマイクロ秒未満の待機にだけ使います。条件を待つ場合は、この 3 つではなくシグナル (ManualResetEventSlim、SemaphoreSlim、TaskCompletionSource) を使ってください。.NET 10.0.10 で計測しています。
2026-10-13 mcpazuredotnet

Azure MCP Server 3.0 は未知のパラメーターを拒否し、リソースをセキュアな既定値で作成するようになりました

Azure MCP Server 3.0.0 が 2026-10-12 にリリースされました。未知のパラメーターを含むツール呼び出しは失敗するようになり、subscription や tenant などのオプションが多くのツールから削除され、新しい Storage アカウントでは Shared Key 認証が無効になり、サーバーはステートレスな MCP 2026-07-28 プロトコルに対応します。

修正: Windows で書き込み中のファイルに対して FileInfo.Length が古いサイズを返す

FileInfo はサイズをキャッシュし、列挙では NTFS が遅延更新するディレクトリエントリを読み、さらに書き込み側が自前のバッファーにバイトを保持していることもあります。Refresh() を呼ぶか、より確実には共有ハンドルから RandomAccess.GetLength で長さを読み取ってください。

Quartz.NET 4.4: ジョブが成果を報告し、ヘルスチェックが停止に気づく

Quartz.NET 4.4.0 では、ジョブが context.Result に JobRunReport (Succeeded、Failed、Cancelled、Skipped と、サマリーおよびメトリクス) を設定でき、その結果がジョブごとに実行履歴へ保存されます。さらに RequireSuccessWithin ヘルスチェックにより、夜間ジョブが成功しなくなったときに Degraded を報告できます。

.NET の正規表現でバランシンググループを使って、ネストした括弧とタグの対応を一致させる方法

バランシンググループ (?<name>) と (?<-name>) を使うと、.NET の正規表現のキャプチャグループをスタックとして扱えるため、1 つのパターンで任意の深さにネストした括弧や <div> タグに一致させられます。完全なパターン、スタックの仕組み、(?<inner-open>) による内側の内容のキャプチャ、そして .NET 11 RC1 で確認した注意点 (空スタックのチェック、壊滅的なバックトラック、NonBacktracking、複数種類の括弧の混在) を解説します。
前へ 次へ