gpt4 book ai didi

C# 在后台 worker 中使用计时器

转载 作者:行者123 更新时间:2023-12-02 19:18:41 25 4
gpt4 key购买 nike

我还没有找到解决方案...希望有人可以帮助我。

我有一个后台 worker ,它一直运行直到被用户取消(它从套接字读取数据并将其写入文件)。

现在我想在一段时间后分割输出文件,例如每 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并在 while 循环中检查 Elapsed 属性。这样就可以防止并发写入和关闭同一个文件。

关于C# 在后台 worker 中使用计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7567609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com