轉自: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月17日 星期三
2017年5月10日 星期三
[C#] CLR 在過去 60 秒一直無法從 COM 內容........
執行VS開發工具時發生以下錯誤訊息:
CLR 在過去 60 秒一直無法從 COM 內容 0x1a1d38 轉換為 COM 內容 0x1a1ea8。
擁有該目的內容/Apartment 的執行緒,很可能正在進行非提取等候或正在處理非常長的執行作業,而未提取 Windows 訊息。
這種情況通常會對效能產生負面影響,甚至可能導致應用程式停止回應,或導致記憶體使用量持續隨時間而累積。
若要避免這個問題,所有單一執行緒的 Apartment (STA) 執行緒都應該使用提取等候基本方法
(例如 CoWaitForMultipleHandles),並且在長時間的執行作業中定期提取訊息。
這時更改以下設定,取消勾選 ContextSwitchDeadlock
訂閱:
文章 (Atom)