Thread.Sleep()不冻结UI首先,我是C#初学者,想做这个:class2.method_79(null,RoomItem_0,num,num2,0,false,true,true);系统.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线程的情况下使用睡眠的最简单方法是使方法异步。要使方法异步,请添加async修饰符。privatevoidsomeMethod()到privateasyncvoidsomeMethod()您现在可以使用await运算符来执行异步任务。等待任务。延迟(毫秒);这使它成为一个异步方法,并将从您的UI线程异步运行。请注意,这仅在Microsoft.NETFramework4.5及更高版本中受支持。.您可以使用DispatcherTimer来计时方法的执行时间。当您调用.Sleep();时,您处于UI线程中;.这就是它冻结UI的原因。如果您需要在不冻结UI的情况下执行此操作,则需要在单独的线程中运行您的代码。在单独的线程上运行耗时的任务。避免UI线程上的耗时任务和Thread.Sleep()。以上就是C#学习教程:Thread.Sleep()不冻结UI分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处:
