在c#中使用线程延迟执行方法
Posted
技术标签:
【中文标题】在c#中使用线程延迟执行方法【英文标题】:Delay execution of a method using Thread in c# 【发布时间】:2017-07-25 23:44:05 【问题描述】:我需要使用 Thread 将方法的执行延迟几秒钟。
但是当我使用Thread.Sleep(1000);
时,它会阻止 UI 执行。
有人建议我使用Task.Delay(1000).Wait();
。但它在框架 4.0 中不起作用。
我可以使用定时器来做到这一点。但我需要使用 Thread 来实现。
由于我是新手,我无法理解类似问题中提供的答案。
谁能告诉我如何在不阻塞 UI 的情况下实现方法的延迟执行。
提前致谢。
【问题讨论】:
“我可以使用定时器来做到这一点。但我需要使用线程来实现” - 定时器回调有什么问题?为什么要创建单独的线程? 为什么定时器对你不起作用?更多信息会更好 - 什么样的应用程序(我假设是 winforms 或 wpf 桌面?) 每次按键都会调用我需要延迟的方法。这就像从列表中搜索一个名字。 @MohanramAnbukkarasu:嗯,最好问问上级他的要求。正如它所说,它看起来很奇怪。根据您的 cmets,您需要的是计时器。 感谢您的建议。@Dennis 【参考方案1】:您需要等待任务以避免阻塞 ui 线程。
await Task.Delay(1000)
【讨论】:
在 .net 4 中检查 Task.Delay 的实现:***.com/questions/15341962/…以上是关于在c#中使用线程延迟执行方法的主要内容,如果未能解决你的问题,请参考以下文章