[C#] Reflectionとは(機能と役割)

Reflectionは、実行時に型情報やAttributeなどのメタ情報を取得するための仕組みです。Attributeが付加する「情報」を読み取り、動作を切り替える役割を担い、フレームワークや自作処理で広く利用されています。

[C#] Attributeとは(機能と役割)

C#の [ ] で記述されるAttributeは、コードに追加の意味や設定を与える仕組みです。処理そのものではなくメタ情報として付与され、コンパイラやフレームワーク、実行時の仕組みによって解釈されて初めて意味を持ちます。

[C#] 非同期処理における競合対策

非同期処理では、同じリソースへの同時アクセスによる競合が起こりやすくなります。本記事では、lock、SemaphoreSlim、キュー、Interlocked などを使った代表的な競合対策を整理します。

[C#] async/await の振る舞いと使い方

async/await は別スレッドを作る仕組みではなく、処理を中断・再開して待ち時間を効率化するための仕組みです。本記事では、awaitする場合としない場合の違いを含めて、その挙動を整理します。

[C#] UIスレッドとは何か

WPFなどのUIアプリでは、UIを扱うスレッドは基本的に1本です。本記事では、UIスレッドの役割、画面が固まる理由、そして async/await がUIの応答性にどう関わるのかを整理します。

[C#] スレッドとは何か

非同期処理を理解するには、まずスレッドの役割を押さえる必要があります。本記事では、プロセスとスレッドの違い、同期処理との関係、そして async/await を理解する前提となる考え方を整理します。

[C#] IDisposeの役割と使いどころ

前の記事で整理したアンマネージドリソースの問題に対して、.NETではその解決手段として IDisposable という仕組みが用意されています。その役割や設計の考え方、基本的な使い方について整理します。

[C#] アンマネージドリソースとは

C#ではGCによりメモリ管理は自動化されていますが、すべてのリソースが対象ではありません。CLRが管理しないアンマネージドリソースの概念と特徴、マネージドとの違い、そしてGCとの関係を整理します。