Csharp/C#教程:Thread.Sleep()没有冻结UI分享


Thread.Sleep()没有冻结UI

首先,我是C#的初学者,我想这样做:

 class2.method_79(null, RoomItem_0, num, num2, 0, false, true, true); System.Threading.Thread.Sleep(250); class2.method_79(null, RoomItem_0, num, num4, 0, false, true, true); System.Threading.Thread.Sleep(300); class2.method_79(null, RoomItem_0, num, num6, 0, false, true, true); 

但是这个解决方案会冻结用户界面,我怎样才能让第二个事件在第一个事件发生后250毫秒而不冻结用户界面?

在不冻结UI线程的情况下使用sleep的最简单方法是使方法异步。 要使方法异步,请添加async修饰符。

 private void someMethod() 

 private async void someMethod() 

现在,您可以使用await运算符来执行异步任务。

 await Task.Delay(milliseconds); 

这使它成为一个异步方法,并将从您的UI线程异步运行。

请注意,这仅在Microsoft .NET framework 4.5及更高版本中受支持。

您可以使用Dispatcher Timer来计算方法的执行时间。

当你调用时,你在UI线程中.Sleep();

这就是它冻结用户界面的原因。 如果您需要在不冻结UI的情况下执行此操作,则需要在单独的线程中运行代码。

在单独的线程上运行耗时的任务。 在UI线程上避免耗时的任务和Thread.Sleep()

上述就是C#学习教程:Thread.Sleep()没有冻结UI分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1027741.html

(0)
上一篇 2022年1月10日
下一篇 2022年1月10日

精彩推荐