如果我在当前正在执行的方法中启动System.Threading.Timer
,该方法将继续执行并返回到main方法,Timer.Tick
事件将在不久的将来某个时间触发(基于计时器& #39;持续时间)。出于我的目的,我需要像计时器这样的东西,但持续时间将根据完成当前方法执行所花费的时间来计算,即Tick在当前方法返回后直接执行。
有没有办法安排'在返回main方法之前,当前方法执行后立即开始的方法?
编辑:这是我正在尝试解决的问题。
System.Windows.Controls.TreeviewItem
包含一个事件TreeviewItem.Collapsed
,在布局之前在内部调用,因为我们可以在OnIsExpandedChanged
方法中看到here在调用事件后,item.UpdateVisualState()
被称为。因此,我无法使用更新的布局来重新定位我的控件。 IMO应该将该事件称为OnCollapsing
或BeginCollapsed
。
我需要折叠才能完成执行,然后让我有机会使用新状态。
答案 0 :(得分:0)
不,没有办法在当前方法返回"之后直接创建/安排可以插入的回调#34;这样做的能力需要在运行时修改调用堆栈,这通常不会被任何运行时暴露。
可能还有其他方法可以实现您可能正在寻找的实际功能。即测量方法的时间可以通过自动生成的包装器完成,类似于Unity拦截器的工作方式。