为了设置舞台,我有一个名为Scheduler
的自定义类,它拥有多个Task
对象(这也是一个自定义类)。每个任务都有一个BackgroundWorker
对象来运行长时间运行的工作。我目前正在进行一些测试,让其中的许多任务能够快速执行并在同一时间处理。什么时候在执行时处理事件?
在我的Task
对象中,我在TaskWorkerCompleted
处理程序中引发自定义事件(TaskCompletedEvent
)以提醒调度程序任务已完成。调度程序为每个任务的TaskCompletedEvent
使用相同的事件处理程序。
我想知道的是,如果我目前在Scheduler
TaskCompletedEvent
处理程序执行代码和另一个事件结束,会发生什么?两者都将在UI线程上,那么当前在事件处理程序中的那个会在另一个之前完成呢?当两个事件同时完成并需要处理时,我会对将要发生的事情感到困惑。
你是什么意思,两者都在UI线程上?如果它们在UI线程上,则它们不能同时完成。也许你的代码样本可能会有所帮助。 – svick 2012-07-30 16:36:16
你究竟如何提升'TaskCompletedEvent'?你从UI线程做到这一点吗? – svick 2012-07-30 16:38:10
@svick是的,我从UI线程中获取它。我认为弗拉德回答了我的问题。我只需要测试一些代码以确保正确理解它。 – Justin 2012-07-30 16:41:36