c# - 调用 Task.Delay() 并在几分钟后询问还剩多少时间

标签 c# asynchronous time task delay

我有一个简单的延迟一个小时的任务(C#):

Task myTask = Task.Delay(TimeSpan.FromMinutes(60));
await myTask;

是否可以从任务中检索还有多少时间可以完成?问题是我不知道它是什么时候开始的。我眼前只有一个正在运行的 Task.Delay,它是从过去开始的。

例如:如果45分钟过去了,我想得到答案:15分钟。

最佳答案

没有。它所公开的只是一个 Task,而 Task 不会告诉您它在等待什么。它只是告诉您何时完成。

在后台,Task.Delay uses a Timer , 但即使是 Timer类(class)不会告诉您还剩多少时间。

您可以创建自己的 Timer 类(您甚至可以从 Timer 继承)来显示剩余时间。

关于c# - 调用 Task.Delay() 并在几分钟后询问还剩多少时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59550855/

相关文章:

ruby - 如何重构这段查找 Unix 时间结束的代码?

c# - 将参数从文本框传递到 RDLC 报告

ios - swift iOS : Closure will not run in background when Remote Notification received

javascript - 从 Firebase 读取完成后返回数组

python - 在 Django 中启动后台任务的简单方法

javascript - 将 microtime(true) 转换为 javascript 日期对象

NTP 和 GPS 源之间的时间精度

c# - Xamarin Studio 和项目引用

c# - 如何从 SqlDataReader 获取列的表名

c# - 继承方案