C# | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何讓 Windows Service 應用程式在特定條件下自行停止

之前分享過 "如何透過 C# 啟動、停止、重新啟動 Windows 服務",這是從一個「程序外」的角度來談如何透過 C# 控制服務狀態。但是最近卻遇到需要在執行中的 Windows Service 應用程式中在特定運作條件下需自行停止的情況,也就是「程序本身」要「自我了結」的狀況,我真的試了好久才試出來。

... 繼續閱讀 ...

解說幾個 EventLog 常用操作方法與重要觀念

最近在開發一些 Windows Service 程式,由於過程中修修改改的,所以藉此整理一下思緒,也順手開發出一套簡易的 EventLog 管理工具,可方便建立、刪除、查詢 EventSource 的相關資訊,也可以刪除 LogName 等資料,避免程式在寫入 EventLog 的時候發生錯誤。

... 繼續閱讀 ...

介紹好用元件:Smart Thread Pool

採用 .Net Framework 內建的 ThreadPool 雖然也不錯用,但若真的實際用來開發時,就會發現有許多使用情境會導致程式碼過於複雜、不容易閱讀。最近發現 Smart Thread Pool 似乎蠻不錯用的,如果你的程式有多份工作需要同步執行,而又不考慮程式執行的先後順序時,是可以考慮使用 Smart Thread Pool 來開發多執行緒程式。

... 繼續閱讀 ...

以 C# 撰寫多執行緒 (Multi-threading) 相關學習資源整理

為了讓應用程式執行的更有效率,我們通常會採用 非同步程式設計模式 ( Asynchronous Programming Design Patterns ) 或 多執行緒處理 ( Managed Threading ) 的方式進行開發,尤其是多執行緒程式設計一直是許多程式設計師不敢碰或沒機會碰到的技術,我們最近就有個案子(非 Web 專案)就需要用到多執行緒進行開發,以確保程式的執行效能能夠符合客戶需求,以下我列出一些之前整理收集的參考資料,供初學者學習研究之用。

... 繼續閱讀 ...

使用超高效率的 NTrace 套件追蹤 .NET 程式執行效能與除錯

上週我親自跑去基隆處理一個程式問題,由於當場的環境缺乏檢測工具,且我們之前的程式 ( Windows 服務 ) 並沒有寫很多追蹤(Trace)的程式碼,只有將一些摘要資訊寫入 EventLog,導致在當場花了許多時間,而且最後還是沒有抓出問題,白白浪費了一個下午。

... 繼續閱讀 ...