Conferințe vbstreets - vizualizați subiectul - modul de resetare a valorii variabilei date1 a tipului datetime

Salutări tuturor.
Vreau să calculez durata funcției.
Eu folosesc (până acum) două variabile date1 și date2 ale tipului DateTime.
Mai intai definesc inainte de inceperea functiei, al doilea dupa sfarsit. Pentru o nouă măsurare, variabilele trebuie șterse de valori.






Întrebarea este: cum?

date1 = System.DateTime.Now; // atribuie o variabilă valorii momentului curent
sort1.shellsort (Tabel_2); // executați funcția pe care o testez
date2 = System.DateTime.Now; // a fost atribuită a doua variabilă valoarea momentului în care funcția a fost terminată
System.TimeSpan diff0 = data2.Subtract (data1); // a obținut diferența în milisecunde.
lblTijdBubblesort.Text = diff0.Milliseconds.ToString (); // a afișat valoarea intervalului pe lebel

Dar, în general, poate exista un mod mai cultural?

Inițial sa gândit la un temporizator pentru a fi folosit ca cronometru. Cred că voi pune timer-ul pe formular, o voi porni înainte de a începe funcția, după oprirea funcției voi opri și voi obține numărul în milisecunde. Dar nu, deci timerul nu funcționează.
Setați intervalul de timp, începeți, dar după expirarea intervalului de oprire. Așa funcționează.

Te rog ajuta-l pe student.
Vă mulțumim anticipat.

VladD2 a scris aici oarecum clasa:

utilizând Sistemul;
utilizând System.Runtime.InteropServices;

Cod: Selectați toate spațiul de nume Utils






# 123;
///


/// Această structură vă permite să calculați viteza de execuție a codului de către unul dintre
/// modul cel mai precis. De fapt, calculele sunt efectuate în cicluri
/// procesor, apoi tradus într-o milisecundă O parte zecimală
/// este fracțiunea din al doilea # 41;
///

public struct PerfCounter
# 123;
Int64 _start;

///


/// Începe numărarea timpului de execuție.
///

public void Start # 40; # 41;
# 123;
_start = 0;
QueryPerformanceCounter # 40; ref _start # 41 ;;
# 125;

///


/// Termina jumătate din timpul de execuție și returnează timpul în secunde.
///

/// Timpul în secunde petrecut în execuția site-ului
/// cod. Partea zecimală reflectă fracțiile unei secunde.

plutarul public Finish # 40; # 41;
# 123;
Int64 finisaj = 0;
QueryPerformanceCounter # 40; refineți # 41 ;;

Int64 freq = 0;
QueryPerformanceFrequency # 40; ref freq # 41 ;;
întoarcere # 40; # 40; # 40; # 40; finisați - _start # 41; / # 40; float # 41; freq # 41; # 41 ;;
# 125;

DllImport # 40; "Kernel32.dll" # 41; # 93;
static bool extern QueryPerformanceCounter # 40; ref Int64 performanceCount # 41 ;;

DllImport # 40; "Kernel32.dll" # 41; # 93;
static extern bool QueryPerformanceFrequency # 40; ref Int64 frecvență # 41 ;;
# 125;
# 125;


Ar trebui să o utilizați astfel:


Cod: Selectați toate // Declarăm o variabilă undeva.
PerfCounter timer = nou PerfCounter # 40; # 41 ;;

timer.Start # 40; # 41 ;; // Începe măsurarea

// Ieșiți rezultatul în consola.
Console.WriteLine # 40; "Durata de execuție în câteva secunde: # 123; 0: ### ### ## 0.0000 # 125;
timer.Finish # 40; # 41; # 41 ;;
// O variabilă poate fi utilizată de mai multe ori.

Cel mai greu voi face acum. Imposibilul va dura puțin. (c) inginerii americani în cel de-al doilea război mondial
Nu știu întotdeauna despre ce vorbesc, dar știu că am dreptate. (c) Muhammad Ali







Trimiteți-le prietenilor: