Мое приложение тратит слишком много времени на метод Wait
Окружающая обстановка:
- .Нет 4.0
- Платформа приложений x86
- Консольное приложение
- Вин сервер 2008 (x64)
Я проверил производительность с помощью dottrace
Wait
отмечен SecuritySafeCriticalAttribute
Обратите внимание, на Win7 (x64) все работает нормально. Я ничего не нашел, любые предложения приветствуются.
Обработка задач
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);
}
}
}