一尘不染

Thread.Sleep()无需冻结UI

c#

首先,我是的初学者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);

但是此解决方案冻结了UI,如何使第二个事件在第一个事件之后250ms发生而不冻结UI?


阅读 317

收藏
2020-05-19

共1个答案

一尘不染

使用睡眠而不冻结UI线程的最简单方法是使方法异步。要使您的方法异步,请添加 async 修饰符。

private void someMethod()

private async void someMethod()

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

await Task.Delay(milliseconds);

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

请注意,只有Microsoft .NET Framework 4.5和更高版本才支持此功能。

2020-05-19