部落格
KomuraSoft LLC 針對網站製作、SEO、Google 廣告運用、Windows 開發、既有資產活用與故障調查,分享可在實務中活用的觀點。
全站 AI 搜尋
搜尋關鍵字會傳送至 Cloudflare AI Search 以產生結果,請勿輸入個人資料。
-
TCP 重送讓工業相機通訊卡幾秒時 - RFC1323 timestamp 與重送等待的切分
本文整理工業相機 TCP 通訊偶爾卡幾秒的切分思路:先在 wire 上用 Wireshark 確認是封包遺失後的 RTO 重送等待,再核對 SYN/SYN-ACK 是否協商 TCP timestamps option,並說明 RFC1323 系 timestamp 如何消除重送時 RTT 量測的模糊、抑制 RTO...
-
FileSystemWatcher 的使用方法與注意事項 - 漏掉、重複通知、完成判定的陷阱
本文整理 FileSystemWatcher 的正確用法。把事件視為跡象而非完成通知,將通知摺疊為重新掃描請求,由傳送端以 temp 後 rename 明示完成,多 worker 以原子性 claim 取得所有權,最後以 full rescan 與 idempotency 收尾,讓監視變得穩固可重入。
-
Media Foundation 是什麼 - COM 和 Windows 媒體 API 的臉浮現的原因
整理 Media Foundation 為何讓人覺得像 COM:其本體是媒體處理平台,但 source、transform、sink、callback 之間的邊界以 COM 介面表現,因此 HRESULT、GUID、apartment 自然浮現,並指出 Source Reader、Sink Writer、Medi...
-
C# async/await 的最佳實踐 - Task.Run 與 ConfigureAwait 的判斷表
本文以 .NET 6 之後的一般 C# 開發為前提,將 async/await 周邊的判斷整理成可立即查的對照表。先依 I/O 等待與 CPU 計算分流,再決定 Task.Run、Task.WhenAll、Parallel.ForEachAsync、Channel、PeriodicTimer 的選用,並涵蓋 Co...
-
Windows 軟即時實戰指南 - 為了減少延遲的檢查清單
整理在普通 Windows 10/11 上以 user-mode 應用程式追求軟即時的具體做法,從脫離 Sleep 的週期迴圈、切開 fast path 與 slow path、固定長度佇列與溢位方針,到 MMCSS、優先順序、電源設定與 p99/p99.9 量測,提供能立即按順序檢視的檢查清單,協助讀者把延遲與...
-
檔案整合的互斥控制基礎 - 檔案鎖與原子性 claim 的最佳實務
本文以「交接協定」的角度整理檔案整合互斥控制:用 temp→rename 公開、done/manifest 宣告完整性、claim rename 取得所有權,並以 lease 與 idempotency 接住失敗。讀者能掌握避免共享資料夾事故的設計原則與反模式分流。
-
要在 C# 中使用原生 DLL,C++/CLI 包裝是有力選項的理由 - 與 P/Invoke 的比較整理
整理從 C# 呼叫原生 DLL 時 P/Invoke 與 C++/CLI 的選擇判斷。當對方是 C++ 類別、含 std::wstring 與例外、所有權複雜時,插一層薄的 C++/CLI 包裝可把 IntPtr 與 marshalling 細節鎖在原生側,讓 C# 端只看到 string、List、IDispo...
-
什麼是 HCP 圖表 - 把 HCP-DSL 轉為決定性 SVG 的 MakingHCPChartSkill 使用方式
本文整理 HCP 圖表的閱讀方式與規則,並介紹 MakingHCPChartSkill 如何把 HCP-DSL 以 JSON 傳入、由 hcp_render_svg.py 驗證並輸出決定性 SVG 的流程,並透過 GCD 與訂單核可兩個範例帶領讀者實際把規格納入 CI 與審查的可重現工作流。
-
COM STA/MTA 基礎 - 執行緒模型與避免 Hang 的思考方式
本文用流程圖整理 COM 的 Apartment 模型(STA/MTA),說明 UI 執行緒為何採用 STA、跨 Apartment 呼叫如何透過 Proxy/Stub 進行 Marshaling,並透過具體擬似碼示範沒有訊息迴圈的 STA 為何容易 Hang,以及同步呼叫中的 Callback 為何容易死結,協...
-
從 32bit 應用呼叫 64bit DLL 的方法 - COM 橋接有用的案例研究
本篇整理 Windows 上想從 32bit 應用呼叫 64bit DLL 時的限制與實務做法,介紹用 Out-of-proc COM(EXE 伺服器)將 64bit 處理切到另一個行程的橋接思路,並附上序列圖、註冊與 marshalling 的注意點,以及 GitHub 範例倉庫,幫助讀者在保留既有資產的同時穩...