【发布时间】:2018-03-03 08:30:03
【问题描述】:
如果我在当前执行的方法中启动System.Threading.Timer,该方法将继续执行并返回主方法,Timer.Tick 事件将在不久的将来触发(基于计时器的持续时间)。出于我的目的,我需要类似计时器之类的东西,但持续时间将根据完成执行当前方法所需的时间来计算,即 Tick 在当前方法返回后直接执行。
有没有办法“安排”一个方法在当前方法执行后立即开始,然后再返回到主方法?
编辑:这是我正在尝试解决的问题。
一个System.Windows.Controls.TreeviewItem包含一个事件TreeviewItem.Collapsed,它在之前布局内部调用,正如我们在OnIsExpandedChanged方法中看到的hereitem.UpdateVisualState()被调用在调用事件之后。因此,我不能使用更新的布局来重新定位我的控件。 IMO 该事件应称为OnCollapsing 或BeginCollapsed。
我需要折叠来完成执行,然后给我一个使用新状态的机会。
【问题讨论】:
-
也许使用BackgroundWorker。完成后,您可以运行任务。
-
可以在方法的最后一行启动定时器吗?这似乎符合列出的标准,除非您需要它以相同的时间间隔(您希望它开始和方法结束)继续触发。
-
难以理解您的要求,不妨尝试列出示例序列?
-
如果您解释了您要完成的工作,而不是 you are trying to do,这真的会有所帮助。
-
@DourHighArch 添加了理由。
标签: c#