当前位置: 首页 > 编程语言 > C#

ResetofavariableafteradelayinWPF分享

时间:2023-04-11 01:44:04 C#

ResetthevalueofavariableafteradelayinWPF我有一些代码执行并获取执行的返回值。我将此值设置为窗口的依赖属性,因为它绑定了样式触发器。当变量为0时,使用默认样式,1为红色样式,2为绿色样式。但是一段时间后我必须以某种实用的方式重置这种风格。最简单的方法是什么?if(!Compiler.TryCompile(strText,Models[Model],EntryPoint.Text,outerror)){output.Items.Add("错误编译:");output.Items.Add(错误);编译状态=1;//ui上绑定的依赖属性}else{output.Items.Add("编译成功!");编译状态=2;//绑定在ui上的依赖属性}//应该在5秒后执行CompilationStatus=0;//在ui上绑定的依赖属性WPF和.Net4在项目中使用。谢谢!!我通常使用自定义扩展方法:delayTimer.Interval=ts;延时定时器。Tick+=(s,e)=>{delayTimer.Stop();行动();};delayTimer.Start();在你的情况下,你可以这样使用它:Dispatcher.DelayInvoke(TimeSpan.FromSeconds(5),()=>{CompilationStatus=0;}编辑:我忘了,但看起来这个方法最初是由乔恩写的在这个SO线程中使用Skeet:Delayingdispatchcalls?如果计时精度不是问题,并且由于您使用的是WPF和.Net4,这是一件非常简单的事情,只需将您的代码替换为:newTask(delegate(){Thread.Sleep(5000);Dispatcher.Invoke((Action)delegate(){CompilationStatus=0;});}).Start();它将通过调度程序在UI线程上调用,所以你应该是安全的。这Fire@Forget方法不是很精确,如果CPU在压力下可能会滞后。如果这不适合你,那么你应该使用System.Diagnostics中的Stopwatch类。以上就是C#学习教程的全部内容:WPF中延迟后重置变量的值。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: