gpt4 book ai didi

如果任何任务未在时间跨度内完成,c# 线程会通知用户

转载 作者:行者123 更新时间:2023-11-30 21:52:57 25 4
gpt4 key购买 nike

我有三个任务

        List<Task> TaskList = new List<Task>();
Stopwatch sw = Stopwatch.StartNew();
var Task1 = HeavyWorkAsync();
var Task2 = HeavyWorkAsync();
var Task3 = HeavyWorkAsync();

TaskList.Add(Task1);
TaskList.Add(Task2);
TaskList.Add(Task3);

如果任何任务没有在 XX 秒内完成,我想更新我的 WPF 应用程序上的标签。

我试过像这样使用 WhenAny 和 WhenAll 的组合:

Task t = await Task.WhenAny(Task.WhenAll(TaskList), Task.Delay(8000));
label.Content = "Work is still being done";
Console.WriteLine("Regular Stopwatch: {0}", sw.Elapsed.TotalSeconds);

但是我不能让它工作

异步方法:

    private Random m_Random = new Random();

public void HeavyWork() {
double secondsToSleep = m_Random.NextDouble() * 10;

System.Threading.Thread.Sleep(TimeSpan.FromSeconds(secondsToSleep));
}

public Task HeavyWorkAsync() {
return Task.Run(() => HeavyWork());
}

最佳答案

使用 Task.WaitAll(tasks, 10000) 怎么样?

关于如果任何任务未在时间跨度内完成,c# 线程会通知用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34293844/

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