部落格
KomuraSoft LLC 針對網站製作、SEO、Google 廣告運用、Windows 開發、既有資產活用與故障調查,分享可在實務中活用的觀點。
可以一併諮詢網站製作、SEO、Google 廣告運用、既有網站改善、Windows 開發與技術諮詢。即使仍在整理狀況的階段也沒有問題。
諮詢網站製作・SEO・Google 廣告-
用 Native AOT 把 C# 做成原生 DLL 的方法 - 用 UnmanagedCallersOnly 從 C/C++ 呼叫
從現有 C/C++ 應用程式以 in-process 方式呼叫 C# 邏輯時,本文示範以 Native AOT 將類別庫發佈為原生 DLL,並用 UnmanagedCallersOnly 公開 cdecl 進入點。透過 handle、錯誤碼與扁平 C ABI 設計交界面,整理適用情境、字串處理與例外不跨越邊界等實...
-
把 Generic Host / BackgroundService 帶進桌面應用程式的理由 - 啟動・壽命・graceful shutdown 的整理會輕鬆很多
整理把 .NET Generic Host 與 BackgroundService 帶進 WPF / WinForms 桌面應用程式的理由,把啟動、lifetime、graceful shutdown 集中於入口管理。透過 StartAsync / ExecuteAsync / StopAsync 的職責分擔避開...
-
ActiveX / OCX 現在如何處理 - 保留・包裝・取代的判斷表
整理在實務專案中遇到 ActiveX 或 OCX 時的判斷流程,從 UI 部件、機器控制、報表、瀏覽器依賴到 32bit 與 64bit 的牆壁,依照保留・包裝・取代三種選項列出對照表與決策流程,並說明註冊發佈與 STA 等容易絆倒的細節,幫讀者選出最低成本的下一步。
-
以一頁整理 WPF / WinForms 的 async/await 和 UI 執行緒 - await 後的回歸處、Dispatcher、ConfigureAwait、.Result / .Wait() 的卡點
本文以一頁的篇幅整理 WPF 與 WinForms 中 async/await 與 UI 執行緒的關係。從 await 後接續的回歸處、Dispatcher 與 Invoke 的選擇、ConfigureAwait(false) 真正的意義,到 .Result 與 .Wait() 為何鎖死訊息迴圈,並附反面模式與審...
-
工業相機控制應用跑一個月後突然崩潰時(後篇) - 什麼是 Application Verifier 與異常系測試基盤的做法
後篇整理 Application Verifier 是什麼以及怎麼把它編進 Windows 異常系測試基盤。用 Handles 抓 invalid handle、Low Resource Simulation 不弄掛機器就觸發資源不足,搭配 harness EXE 與自家日誌,做出「壞了能解釋」的基盤。
-
工業相機控制應用跑一個月後突然崩潰時(前篇) - handle leak 的找法與長時間運轉用的日誌設計
本文以工業相機控制應用連續運轉約一個月後突然崩潰的案例,整理 handle leak 的特徵、與記憶體流失的差異,以及如何用 Handle Count 斜率與 create/close 配對日誌追出真正洩漏的位置。讀者可學到把長時間運轉的故障切成可觀測形式,並用短迴圈反覆壓測 reconnect 與 timeou...
-
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...