我试图找到一种方法,导致程序不会暂停,但他们是延迟执行某些任务。即例如,我试图延迟输出“Hello”给控制台10秒,但程序将继续执行程序的其余部分。C#延迟 - 延迟输出到控制台,而程序继续执行
1
A
回答
1
启动一个新的线程:
Task.Factory.StartNew(new Action(() =>
{
Thread.Sleep(1000 * 10); // sleep for 10 seconds
Console.Write("Whatever");
}));
0
你可以使用'Thread.Sleep(10000);'
参见: https://msdn.microsoft.com/en-us/library/d00bd51t(v=vs.110).aspx
5
使用TPL:
static void Main(string[] args)
{
Console.WriteLine("Starting at " + DateTime.Now.ToString());
Task.Run(() =>
{
Thread.Sleep(10000);
Console.WriteLine("Done sleeping " + DateTime.Now.ToString());
});
Console.WriteLine("Press any Key...");
Console.ReadKey();
}
输出:
Starting at 2/14/2017 3:05:09 PM
Press any Key...
Done sleeping 2/14/2017 3:05:19 PM
只是注意,如果按前10秒的关键,它将退出。
1
你可以使用的Task.Delay和ContinueWith相结合的方法:
Task.Delay(10000).ContinueWith(_ => Console.WriteLine("Done"));
2
有模拟延迟2种典型的方式:
- 一个异步任务,如:
Task.Delay
- 或阻止活动:
Thread.Sleep
您似乎指的是第一种情况。
这是一个例子
public static void Main(string[] args)
{
Both();
}
static void Both() {
var list = new Task [2];
list[0] = PauseAndWrite();
list[1] = WriteMore();
Task.WaitAll(list);
}
static async Task PauseAndWrite() {
await Task.Delay(2000);
Console.WriteLine("A !");
}
static async Task WriteMore() {
for(int i = 0; i<5; i++) {
await Task.Delay(500);
Console.WriteLine("B - " + i);
}
}
输出
B - 0
B - 1
B - 2
A !
B - 3
B - 4
相关问题
- 1. 延迟执行
- 2. C#的LINQ - 延迟执行
- 3. 延迟执行 - C#WPF
- 4. Apache Storm:执行程序之间的关系,执行延迟和进程延迟?
- 5. 线程执行延迟+ Android
- 6. 延迟执行IRP_MN_SET_POWER
- 7. LINQ延迟执行
- 8. AS3延迟执行?
- 9. PLINQ延迟执行
- 10. javascript延迟输出
- 11. Arduino到Unity3D延迟/延迟
- 12. C#到MY SQL延迟查询执行
- 13. MySQL触发器/程序执行延迟
- 14. 创建延迟执行程序
- 15. C#延迟线程
- 16. 而与延迟
- 17. 为什么google chromes控制台延迟?
- 18. Eclipse插件 - 延迟写入控制台
- 19. 无延迟地写入控制台
- 20. 控制台输出延迟与Python但不是Java使用PsExec
- 21. 如何测量低延迟C++应用程序的延迟
- 22. 延迟继续现在正在工作
- 23. 连续延迟的android处理程序
- 24. 控制器意外延迟
- 25. 延迟控制事件
- 26. Javascript代码执行延迟
- 27. Jquery的延迟执行
- 28. jquery延迟功能执行
- 29. Iphone延迟执行代码
- 30. 延迟uart命令执行
你可以启动它本身暂停10秒,然后写入控制台另一个线程。 – David