کارکردن تایمر بعد از اتمام برنامه
دوستان سلام. یه برنامه نوشتم که حدود دو دقیقه طول میکشه تا خروجی بده. یه تایمر گذاشتم که از زمانی که دکمه اجرا زده میشه تا پایان برنامه آن رو شمارش کنه و زمان دقیق اجرای برنامه رو کاربر ببینه. اما مشکل اینجاس که تایمر عمل نمیکنه و بعد از اتمام برنامه، شروع به کار میکنه. دوستان میتونن راهنمایی کنن؟
int seconds = 0;
int minutes = 0;
int hours = 0;
private void timer1_Tick(object sender, EventArgs e)
{
if (seconds == 60)
{
seconds = 0;
if (minutes == 60)
{
minutes = 0;
hours++;
}
else
{
minutes++;
}
}
else
{
seconds++;
}
label1.Text = (hours > 9 ? hours + "" : "0" + hours) + ":"
+ (minutes > 9 ? minutes + "" : "0" + minutes) + ":"
+ (seconds > 9 ? seconds + "" : "0" + seconds);
}
private void btn_EXE_Click(object sender, EventArgs e)
{
if (timer1.Enabled)
{
timer1.Enabled = false;
button1.Text = "ادامه";
}
else
{
timer1.Enabled = true;
button1.Text = "توقف";
}
شروع اجرای برنامه ...
.
.
.
پایان برنامه
}
نقل قول: کارکردن تایمر بعد از اتمام برنامه
سلام
پیشنهاد میکنم برای ارزیابی زمان انجام یک فرآیند از Stopwatch استفاده کنید. در زمان شروع برنامه اون را start کنید و در هر جای برنامه که نیاز بود اون را stop کنید و از مقدار elapsed میتونید برحسب معیارهای مختلف خروجی بگیرید (ساعت، دقیقه و یا ثانیه و ...). کلاس Stopwatch در فضای System.Diagnostic قرار دارد:
using System.Diagnostics;
void StopwatchUsingMethod()
{
var timer = new Stopwatch();
timer.Start();
//کدهای برنامه
timer.Stop();
TimeSpan timeTaken = timer.Elapsed;
string result= "Time taken: " + timeTaken.ToString(@"m\:ss\.fff");
}
لینک زیر را ببینید:
https://docs.microsoft.com/en-us/dot...h?view=net-6.0
اگر در یک کلاس متغیر را در سطح فرم تعریف کنید میتونید از متدهای مختلف start کنید و در متدهای دیگه اون را stop کنید.
نقل قول: کارکردن تایمر بعد از اتمام برنامه
سلام.
توجه کنید، زمان اجرای برنامه در StartTime از Process موجود هست.
https://docs.microsoft.com/en-us/dot...cess-starttime
نقل قول: کارکردن تایمر بعد از اتمام برنامه
ممنونم دوست عزیزکمک خوبی بود . برای نمایش زمان در لحظه اجرای برنامه فکر کنم باید از thread استفاده کنم.
نقل قول: کارکردن تایمر بعد از اتمام برنامه
نقل قول:
نوشته شده توسط
ROSTAM2
دوست عزیز ممنون. متوجه نشدم از این چجوری باید استفاده کنم. فکر میکنم به thread مربوط میشه میتونم ازش استفاده کنم.
نقل قول: کارکردن تایمر بعد از اتمام برنامه
من هم سوال شما رو درست متوجه نشدم! تایمر رو برای مدت زمان اجرای برنامه می خوای؟!
نقل قول: کارکردن تایمر بعد از اتمام برنامه
نقل قول:
نوشته شده توسط
csharpdoost
دوست عزیز ممنون. متوجه نشدم از این چجوری باید استفاده کنم. فکر میکنم به thread مربوط میشه میتونم ازش استفاده کنم.
بله اگر برنامه شما در Thread جاری درگیر باشه و بخواهید در UI اطلاعات را همزمان نمایش بدید باید در یک Thread دیگه عملیات مجزا را انجام بدید و بعد توسط delegate یک شیء به ویژگی های اون دسترسی داشته باشید.