Category: .net

在Huan-Lin學習筆記看到一篇文章 -- C# 學習筆記:多執行緒 (3) - 優先順序。用.NET跑多執行緒對我不算陌生,但卻一直沒注意到.NET的Process跟Thread的Priority是可以調整的。.NET執行緒預設的優先權是Normal,而Windows核心層次的作業(例如滑鼠、...

【個案】某支開啟Excel進行作業的.NET排程程式,定期排程執行時遇到錯誤,留下一堆無主excel.exe。 用以下程式示範: using System; using System.Collections.Generic; using Syste...

工作的專案有個小需求,使用者羅列了一堆報表匯出需求,基上都是從現存LINQ資料集合以不同條件取出不同欄位。 我想到最簡便的做法是套用Where()查詢,依需求產生匿名型別 Select(o => new {     欄位1 = o.PropA, ...

可輕易反組譯是採用中介語言(.NET, Java)平台的共有特性,也是實務應用的資安隱憂,面對這個問題,最有效的解決方案是 -- 混淆器(Obfuscator)。 混淆器的運作原因,是解析編譯好的DLL或EXE檔,將其轉換成執行結果相同的組件,差別在於私有類別、屬性、方法、欄位、參數名稱都已改...

為了讓物件支援Data Binding,資料物件必須實作INotifyPropertyChanged介面,提供PropertyChanged事件,並在屬性值變動時,以便即時通知UI更新繫結對象的顯示內容。而實作INotifyPropertyChanged的類別,在宣告每個屬性時都要寫成如下格式:...

手邊的專案遇到一個情境: TransactionScope中包含兩段SQL操作,因未共用連線,預期將啟動MSDTC分散式交易。而第二段SQL操作使用了T-SQL的BEGIN TRAN與COMMIT TRAN。若TrasactionScope未能呼叫TransactionScope.Complet...

頗特殊的需求: 一個跨平台整合在傳遞以GUID為Primary Key資料時,對方的參數欄位只接受最長30個字元,即使使用16進位數字表示法(例如: 4854c292c333480890f916d1a062b8e3),GUID字串也長達32字元,超出限制。另外想一種不會重複的識別編號法則是種解法...

在某些情境下,我們需要限制同一支程式同時間只能執行一份,很直覺的想法是檢查Process清單,由程式名稱在清單中出現一次以上來判斷是否已有同名程式在執行。這個做法直覺有效,在大部分情境也適用,甚至在CodeProject上也不乏類似"教學範例",很自然地,這也一度是我愛用過的解法(誰沒有過去呢?);...

因緣巧合,最近剛好需要處理中文點陣字型。 在DOS+倚天中文的古早年代,曾經用BASICA寫過解析倚天中文字型檔的程式,沒想到二十多年後居然還有機會重新回味,只是這回手上的兵器已由當年的BASICA小開山刀,換成C#加農砲,語言特性已不可同日而言、自己的程式技巧也遠比當年成熟,對照起來格外有趣...

之前學過透過RedirectStandardOutput設定,可在.NET呼叫其他命令列程式並接收其顯示內容的技巧。這回則有額外需求,由於某個命令列轉檔工具執行耗時(可能長達數分鐘),故進行期間會持續輸出進度資訊讓使用者安心,但依以前StandardOutput.ReadToEnd()的做法,....

今天處理了一件.NET服務故障案件。有個.NET開發的Windows服務,其任務為每隔幾分鐘查詢資料庫,取出待處理的作業項目,依其指示執行相關動作。狀況為資料庫仍有大量待處理項目,但服務未如預期取回資料逐筆消化。 幸運的是,程式設計時已加入頗為詳細的Log機制,很快地在Log檔發現記憶體不足錯...