2015-09-15 2 views
-4

Я соединяюсь с инструментом, используя следующую команду.Время для команды, которая должна быть выполнена

instrument = programmer.GetInstrument(_address); 

Я хочу знать, сколько времени требуется для выполнения этой команды.

+4

Можете ли вы дать более подробную информацию о том, почему секундомера не будет работать в вашем случае? – jgg99

+0

Мне нужно, чтобы это было детерминированным, и я хочу, чтобы я только отслеживал время выполнения этой команды. По крайней мере, это то, что мне говорят. Я собираюсь запустить его простым таймером несколько раз и опубликовать результаты в ближайшее время. – Sophman

+0

'Я собираюсь запустить его с помощью простого таймера несколько раз и опубликовать результаты в ближайшее время.« Вы задали этот вопрос, прежде чем пытаться его использовать? – Eser

ответ

2

Если вы просто хотите, чтобы сделать нить в линию, вы могли бы сделать этот код:

System.Threading.Thread t = new System.Threading.Thread(delegate() 
{ 
    try 
    { 
     DateTime cmdStartTime = DateTime.UtcNow; 
     instrument = programmer.GetInstrument(_address); 
     DateTime cmdEndTime = DateTime.UtcNow; 

     TimeSpan totalCmdRuntime = cmdEndTime - cmdStartTime; 
     Debug.WriteLine(String.Format("Programmer.GetInstrument({0}) command took {1} mSec to execute", _address, totalCmdRuntime.TotalMilliseconds)); 
    } 
    catch { } 
}); 
t.Name = "GetInstrumentTimer"; 
t.Start(); 
+0

это должно сделать это. Я попробую прямо сейчас и выясню, влияет ли это на мое время. – Sophman

+0

Это по сути то же самое, что использовать секундомер, но с гораздо меньшей точностью, что может быть не очень полезно для вашего случая использования. – jgg99

+0

Да. Вероятно, ваша команда выполняется быстрее разрешения таймера, который вы используете. См. SO http://stackoverflow.com/questions/3744032/why-are-net-timers-limited-to-15-ms-resolution для некоторых альтернатив. –

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