我找不到解決方案,但希望有人能幫助我。C#在Backgroundworker中使用計時器
我有一個backgroundworker,直到它被用戶取消(它從套接字讀取數據並將其寫入文件中)才運行。
現在我想在一段時間後分割輸出文件,例如,每2分鐘創建一個新文件。
爲了做到這一點,我想用一個定時器,像
private void bckWrkSocket_DoWork(object sender, DoWorkEventArgs e)
{
//create timer and set its interval to e.Argument
//start timer
while(true)
{
if(timer.finished == true)
{
//close old file and create new
//restart timer
}
...
}
}
任何建議/想法?
編輯:秒錶做的伎倆。這裏是我的解決方案 這裏是我的解決方案:
private void bckWrkSocket_DoWork(object sender, DoWorkEventArgs e)
{
long targettime = (long) e.Argument;
Stopwatch watch = new Stopwatch();
if (targettime > 0)
watch.Start();
while(true)
{
if ((targettime > 0) && (watch.ElapsedMilliseconds >= targettime))
{
...
watch.Reset();
watch.Start();
}
}
Stopwatch發揮了訣竅。謝謝! – metacircle
然後標記爲接受的答案。 – riezebosch