ПредишенСледващото

Поздрави на всички.
Искам да се изчисли продължителността на функцията.
Използвайте (засега) две променливи DATE1 и DATE2 тип DateTime.
Първите се определя преди началото на функцията, вторият след това. За нов променливи за измерване да се освободи от ценности.
Въпрос: как?

DATE1 = System.DateTime.Now; // присвояване на стойност на момента
sort1.shellsort (Tabel_2); // Стартиране на функция, която проверява
DATE2 = System.DateTime.Now; // присвоен на втора променлива приключването въртящ момент на функцията
System.TimeSpan diff0 = date2.Subtract (DATE1); // получи разликата в милисекунди.
lblTijdBubblesort.Text = diff0.Milliseconds.ToString (); // показва стойностите на Lebel интервала

Като цяло, може да има по-култивиран начин?

Първоначално си мислех за използване на таймера като хронометър. Мисля, че ще сложи таймер за формата, преди да се стартира функцията, след края на функцията ще спре и да получите Tsiferki в милисекунди. Но не, защото таймерът не работи.
Zadash интервал таймер, началото, но след интервала стоп. Така че тя работи.

Моля, помогнете на ученика.
Благодаря предварително.

VladD2 написано тук като клас:

използване на системата;
използване System.Runtime.InteropServices;

Код: Избери всички именни пространства Utils
# 123;
///


/// Тази структура позволява да се изчисли скоростта на един от кода
/// най-точен начин. В действителност, изчисленията се извършват в барове
/// процесор, и след това се прехвърля в милисекунди # 40; на десетичната част
/// листа е 41 секунди #.
///

обществена структура PerfCounter
# 123;
Int64 _start;

///


/// Започнете брой vermeni изпълнение.
///

обществени невалидни Започнете # 40; # 41;
# 123;
_start = 0;
QueryPerformanceCounter # 40; лит _start # 41 ;;
# 125;

///


/// Завършва polschet vermeni изпълнение и връща времето в секунди.
///

/// Време в секунди, прекарано изпълнява част
/// код. Десетична част отразява част от секундата.

фрий-флоут Finish # 40; # 41;
# 123;
Int64 покритие = 0;
QueryPerformanceCounter # 40; лит финала # 41 ;;

Int64 Честотен = 0;
QueryPerformanceFrequency # 40; лит Честотен # 41 ;;
връщане # 40; # 40; # 40; плава # 41; # 40; покритие - _start # 41; / # 40; поплавък # 41; Честотен # 41; # 41 ;;
# 125;

# 91; DllImport # 40; "Kernel32.dll" # 41; # 93;
статичен екстернант BOOL QueryPerformanceCounter # 40; лит Int64 performanceCount # 41 ;;

# 91; DllImport # 40; "Kernel32.dll" # 41; # 93;
статичен екстернант BOOL QueryPerformanceFrequency # 40; лит Int64 честота # 41 ;;
# 125;
# 125;


Използвайте го, така че е необходимо:


Код: Избери всички // Някъде декларира променлива.
PerfCounter таймер = нов PerfCounter # 40; # 41 ;;

timer.Start # 40; # 41 ;; // Започнете измерването

// Посочете резултата в конзолата.
Console.WriteLine # 40; "Срок за изпълнение в секунди: # 123 0 ### ### 0.0000 ## # 125; "
timer.Finish # 40; # 41; # 41 ;;
// една променлива може да се използва многократно.

Трудното аз ще направя точно сега. Невъзможното ще отнеме малко повече време. (C) Американските инженери в Втората световна война
Не винаги знам какво говоря, но знам, че съм прав. (С) Мохамед Али

Подкрепете проекта - споделете линка, благодаря!