2017年5月17日 星期三

[C#] CompareOrdinal與Equals比對測試

轉自:http://www.cnblogs.com/LoveLyre/archive/2011/09/02/2163594.html



            //CompareOrdinal
            start = Environment.TickCount;
            for (int i = 0; i < Num; i++)
            {
                string.CompareOrdinal(s1, s2);
            }
            end = Environment.TickCount;
            AddLog("CompareOrdinal : " + (end - start));

            //靜態Equals
            start = Environment.TickCount;
            for (int i = 0; i < Num; i++)
            {
                string.Equals(s1, s2);
            }
            end = Environment.TickCount;
            AddLog("靜態Equals : " + (end - start));


2017年5月10日 星期三

[C#] CLR 在過去 60 秒一直無法從 COM 內容........



執行VS開發工具時發生以下錯誤訊息:

CLR 在過去 60 秒一直無法從 COM 內容 0x1a1d38 轉換為 COM 內容 0x1a1ea8。
擁有該目的內容/Apartment 的執行緒,很可能正在進行非提取等候或正在處理非常長的執行作業,而未提取 Windows 訊息。
這種情況通常會對效能產生負面影響,甚至可能導致應用程式停止回應,或導致記憶體使用量持續隨時間而累積。
若要避免這個問題,所有單一執行緒的 Apartment (STA) 執行緒都應該使用提取等候基本方法
(例如 CoWaitForMultipleHandles),並且在長時間的執行作業中定期提取訊息。


這時更改以下設定,取消勾選 ContextSwitchDeadlock


 

MangoHost Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template