2026-05-01から1ヶ月間の記事一覧

【C#】System.Threading.Lockの使い方とobject lockとの性能比較

.NET 9 から同期的な排他制御用の System.Threading.Lock というクラスが追加されました。 元々存在する lock 構文はそのままに、lock 用に用意していた object などをほぼそのまま置き換えられる上、より高速に動作するということなので使い方の確認と性能…

【C#】R3でスレッドセーフな値変更通知プロパティを実装する

OSSを探してみたのですが (1)プロパティを排他制御で保護しつつ、(2)変更したら通知を緩く出す、のような条件に一致するいい感じのが見つからなかったので自分で作ってみました。 確認環境 Visual Studio 2026 .NET 8 Windows11(マルチプラットフォームは未…

エルゴヒューマンのキャスターを交換してみた

現在2026年の5月で、2020年の11月頃に買って5年半経過したエルゴヒューマンのキャスターが経年劣化か何かで破損したので交換した話です。 ポリウレタンの少し柔らかい部分がボロボロになって割れてしまっています。5つのキャスターのうち1つの片方だけが特に…

【C#】Timerの精度にtimeBeginPeriodが効くのか確認する

System.Threading.Timer クラスで定周期に実行されるコールバックの実行間隔に対して、システムクロック解像度を指定する timeBeginPeriod が影響を与えるかどうかが気になったので検証してみたいと思います。*1 *2 通常だと、Timer の実行間隔を 1msを指定…

【C#】PeriodicTimerの使い方

C#

相当前に C# には 4つの代表的な記事がありますと記事を書きましたが、最近は UI 以外の場所の処理ではすっかり既存のタイマークラス(Timers.Timer や Threading.Timer)を使わなくなり、大半を PeriodicTimer や自作の async なループで定周期処理を実装す…