Я пока не могу найти решение для этого ... надеюсь, кто-то может мне помочь.
У меня есть фоновый работник, который работает до тех пор, пока пользователь не отменит его (он читает данные из сокета и записывает их в файл).
Теперь я хочу разделить выходной файл через определенный промежуток времени, например, каждые 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
}
...
}
}
Есть предложения / идеи?
edit: Секундомер сделал свое дело. Вот мое решение
Вот мое решение:
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();
}
}