2013-11-28 5 views
0

Я хотел бы сравнить разницу в производительности между использованием Task, а не в примере ниже. Я знаю, что задачи выполнены успешно, так как я могу использовать их результаты, прежде чем остановить второй таймер.Задачи бенчмаркинга на основной теме

Я хотел бы знать, почему мой последний пример пишет 0 мс:

private Task<List<ACTION>> GetActions() 
{ 
    return Task.Factory.StartNew(() => 
    { 
     using (var context = new DbContext()) 
     { 
      return context.ACTION.ToList(); 
     } 
    }); 
} 

-

var sw1 = new Stopwatch(); 
sw1.Start(); 
var sync1 = context.ACTION.ToList(); 
var sync2 = context.ACTION.ToList(); 
sw1.Stop(); 
Debug.WriteLine(sw1.ElapsedMilliseconds); //4XX MS 

var sw2 = new Stopwatch(); 
sw1.Start(); 
var t1 = GetActions(); 
var t2 = GetActions(); 
var tasks = new Task[] { t1, t2 }; 
Task.WaitAll(tasks); 
sw2.Stop(); 
Debug.WriteLine(sw2.ElapsedMilliseconds); //0 MS 

ответ

0

Поскольку вы начинаете sw1 во втором образце, а также.

var sw2 = new Stopwatch(); 
sw1.Start(); 
+0

* facepalm *, что случается, когда вы устаете. Благодаря :) – Johan

Смежные вопросы