PDA

View Full Version : سوال: بدست آوردن زمان اجرای یک Thread



Mohsen229266
یک شنبه 01 شهریور 1388, 09:32 صبح
با سلام
وقتی کد ما زمانی برای اجرا بیش از حد معمول نیاز داره ویک Thread ایجاد میشه چطوری میشه زمان یک Thread رو محاسبه کرد؟

Mohsen229266
یک شنبه 01 شهریور 1388, 19:11 عصر
اصلان محاسبه زمانش امکان داره؟

fazel-d
دوشنبه 02 شهریور 1388, 02:56 صبح
شما می تونید با کلاس StopWatch زمان اناجم یک فعالیت رو مورد ارزیابی قرار بدی
فقط کافیه کلمه کلیدی StopWatchرو در همین سایت بیا سایت DotnetSource.net جستجو کنی

fazel-d
سه شنبه 03 شهریور 1388, 18:40 عصر
اخل حلقه مقدار stopWatch.Elapsed رو نشون بده==> برای این کار از MultiThreading استفاده کن و یه thread جدید رو new کن.
برای مثال من یه حلقه for که 100,000 بار دور میزنه رو به این طریق تست کردم و زمان اجرای اون برابر با 00:01:07.9747730 شد.
در ضمن این زمان رو در هنگام اجرای حلقه for هم به من نشون داد.

public Form1()
{
InitializeComponent();
Form1.CheckForIllegalCrossThreadCalls = false;
}

private void button1_Click(object sender, EventArgs e)
{
System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(ForLoopTimeTest));
thread.Start();
}
private void ForLoopTimeTest()
{
System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch();
stopWatch.Start();
for (int i = 0; i < 100000; i++)
{
label1.Text = stopWatch.Elapsed.ToString();
}
stopWatch.Stop();
label1.Text = stopWatch.Elapsed.ToString();
}

با تشکر از مجتبی صحرائی