我的應用程序花費太多的時間Wait
方法與SecuritySafeCriticalAttribute慢速性能取勝的服務器在2008年
環境:
- .NET 4.0
- 應用平臺86
- 控制檯應用程序
- 取勝server 2008(x64)
我檢查性能受到SecuritySafeCriticalAttribute
上標明的Win7(64位)請注意,所有工作正常。我什麼也沒找到,歡迎任何建議。
任務處理
private readonly BlockingCollection<TTask> _queue = new BlockingCollection<TTask>();
private Thread _workThread;
public void ProcessTask(TTask task)
{
_queue.Add(task);
}
private void ProcessTask()
{
while (_isRun)
{
try
{
TTask task = _queue.Take();
if (task.IsNull())
{
continue;
}
_log.DebugFormat("Sending task: {0}", task);
DoProcessMessage(task);
}
catch (Exception ex)
{
_log.Error(ex);
}
}
}
我使用'BlockingCollection',所以沒有'鎖'。請注意:這個問題在win7(x64) – GSerjo
上沒有出現Comments for Take()方法建議您可能需要在Add()之後添加對CompleteAdding()的調用:http://msdn.microsoft.com/en-us /library/dd287085%28v=vs.100%29.aspx –