在定时器到期前检查任务是否成功c#(多线程)
本文关键字:成功 多线程 是否 任务 定时器 检查 | 更新日期: 2023-09-27 18:04:47
我有一个场景,其中父线程生成多个任务/作业线程(由其他人完成)。最后,我需要执行一个与作业线程无关的额外任务。
我需要的是执行这个新任务(检查删除服务器上的文件是否存在),只要固定的时间,即30分钟最多,并以固定的间隔重复这个过程,即每2分钟,直到条件得到满足。如果确认成功,它应该退出回主线程(parent——parent线程在终止之前需要等待这个特定的任务结束)。
我对c#多线程非常陌生,如果我们需要在这种情况下使用线程。所以,谁能给我一个指导。 <>之前主线程{子threads0…n全部完成长达n分钟(R)每分钟检查一些东西如果成功,退出如果没有,继续等待m分钟,则(R)}试试这样:
Task.Factory.StartNew(() =>
{
while (!CheckForSomething())
Task.Delay(TimeSpan.FromMinutes(2));
}).Wait(TimeSpan.FromMinutes(30));
有几种方法可以做到这一点,这里没有列举,:)
- 使用AutoResetEvent,示例如下。
- 使用任务。
- 使用相比。ForEach
- 和其他低级别的,如锁的使用等