Я делаю приложение WPF, используя шаблон MVVM. Я обнаружил, что иногда Задача значительно медленнее, чем Thread. Например, в тесте ViewModel:
public void DoSomething()
{
Stopwatch stopwatch = Stopwatch.StartNew();
new Thread(() =>
{
Debug.Print(string.Format("Elapsed: {0}", stopwatch.ElapsedMilliseconds));
}).Start();
}
Выход обычно составляет Elapsed: 0
. Это стоило 0 миллисекунд. Но если я заменю Thread
на Task
. Это может стоить 5000 ~ 15000 миллисекунд.
Я пытался воспроизвести это в другом проекте WPF, но не смог.
Конфигурации моей системы:
- Visual Studio 2010 SP1
- .NET Framework 4.0
- Windows 7 64bit.
- 4 ГБ ОЗУ
- AMD Phenom II 635 (4 ядра, 2,9 ГГц)
Есть идеи? Спасибо.
(Извините, я не могу загрузить проект с такой проблемой)