日期:2014-05-17  浏览次数:20574 次

WPF关于委托中的变量处理
                if(num > 60)
                                Dispatcher.BeginInvoke(DispatcherPriority.Normal, new TimeDelegate(Warning));
                num = 0;

Warning方法中有个textbox显示num数值的的语句,所以我选择了用委托处理。编译后num的数值还没显示出来,num就清零了,应该是委托与程序主进程异步进行造成的。我想等委托执行完毕再进行num清零,怎么修改?

------解决方案--------------------
            var temp = this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new TimeDelegate(Warning));
            temp.Completed += (o, e) =>
            {
                num = 0;
            };