C# 多執行緒機制探索(一):基本觀念、進程與執行緒關係、優缺點分析
進程 vs 執行緒 概念進程執行緒 定義執行中程式 + 記憶體空間 + 系統資源進程內單一執行流,擁有專屬暫存器/堆疊 代碼區獨立共享 (同進程執行緒共用代碼
C# 多執行緒機制探索(二):Thread 類別核心 API 與第一個執行緒程式
第一支執行緒程式 // SystemThread.cs using System; using System.Threading; namespace Th
C# 多執行緒機制探索(四):執行緒狀態、優先權、前景/背景執行緒與生命週期
主執行緒與子執行緒關係 Main 所在執行緒為主執行緒(前景執行緒)。 所有前景執行緒結束 → 進程結束,背景執行緒被強制中止(CLR 呼叫 Abort())
C# 多執行緒機制探索(5):lock 關鍵字與生產者消費者問題同步基礎
一、生產者-消費者問題本質 共享資料結構(佇列),生產者 Enqueue,消費者 Dequeue。核心挑戰: 互斥存取:同一時間只能一個執行緒修改佇列 條件同
C# 多執行緒機制探索(6):Monitor 監視器基礎與共享物件同步機制深度解析
一、共享物件同步問題 多執行緒存取同一物件實例時,若無同步機制,會導致資料競爭:讀取到中間狀態、寫入覆蓋、不變量破壞。lock 僅能保護程式碼區塊,Monito
C# 多執行緒機制探索(7):Monitor 監視器模式實現生產者消費者模式完整實戰
一、為什麼需要 Monitor? lock 只能同步程式碼區塊,無法表達「等待特定條件」的語意。Monitor 提供條件變數機制:Wait 釋放鎖並進入等待隊列
C# 多執行緒機制探索(8):ThreadPool 執行緒池與 Timer 定時器自動化管理基礎架構
一、兩類適用 ThreadPool/Timer 的場景 場景特徵解決方案 大量等待事件執行緒多數時間阻塞等待 I/O、訊號ThreadPool:佇列工作項,系
C# 多執行緒機制探索(9):ThreadPool 內部運作細節、Interlocked 原子操作與 Timer 定時器進階用法
一、ThreadPool 範例深度剖析 SomeState:工作項資料封裝 將需傳遞給工作項的資料封裝為類別實例,QueueUserWorkItem 以 obj
C# 字串長度計算:中文雙位元組、英數單位元組的精確截取與 MutiSubString 實作
問題背景:String.Length 的陷阱 string.Length 回傳 Char 物件數量(UTF-16 代碼單元),非顯示字元數、非位元組數。中文、表
C# 多執行緒機制探索(10):ThreadPool 執行緒池與 Timer 定時器自動化管理完整實戰
一、ThreadPool:工作項佇列與自動執行緒管理 適用場景:大量短暫工作、等待 I/O、不需精確控制執行緒生命週期。CLR 內建執行緒池,自動調整執行緒數量
C# 多執行緒機制探索(11):Mutex 互斥體進階同步、WaitAll/WaitAny/WaitOne 與 AutoResetEvent 協作模式
一、Mutex:跨進程的重量級同步原語 Mutex (Mutual Exclusion) 類似「計程車」:同一時間只能有一個執行緒「搭乘」(擁有)。支援跨進程同
AOP 實戰:延遲載入 LazyLoad 實作原始碼深度解析(下)
核心組件:LazyLoadableSink 訊息攔截器 LazyLoadableSink 是延遲載入的執行核心,攔截 get_、FieldGetter、GetV
AOP 實戰:實體集合更新 EntityListUpdatable 實作原始碼深度解析(上)
系列簡介:FaibClass.Data 雙 AOP 應用架構 本框架實作兩個經典 AOP 場景: 實體集合更新:自動追蹤屬性異動,優化 SQL UPDATE
AOP 實戰:實體集合更新 EntityListUpdatable 實作原始碼深度解析(中)
背景:自動追蹤屬性變更,優化資料庫更新語句 問題:前端修改實體多個屬性後呼叫 Update,若無變更追蹤,需將所有欄位包含在 SQL UPDATE 中,造成不必
AOP 實戰:延遲載入 LazyLoad 實作原始碼深度解析(上)
背景:以 ContextBoundObject 實現 AOP 攔截 本系列展示 FaibClass.Data 框架中兩個 AOP 應用:實體集合更新與延遲載入。
C# 命名空間專題(二):巢狀命名空間、同名方法隔離、命名空間別名與全域限定符
一、巢狀命名空間:層級化邏輯組織 namespace Csharp // 最外層 { class Man { public stri
C# 命名空間專題(一):定義、引用、消歧義與設計器整合完整教學
一、命名空間核心作用:邏輯分組與名稱消歧義 當專案引用多個函式庫,且不同函式庫包含相同名稱的類別時,命名空間提供編譯期消歧義機制: using System.
C# 組件與應用程式域深度解析:Assembly、AppDomain、反射載入與命名空間管理
一、應用程式域:進程內的隔離邊界 AppDomain 是 CLR 提供的輕量級進程隔離單位,單一進程可包含多個 AppDomain,彼此記憶體隔離、安全性獨立、