如何进行监视.等待处理消息队列
本文关键字:消息 队列 处理 等待 何进行 监视 | 更新日期: 2023-09-27 18:26:12
我使用的是.NET 4.0(没有异步)。
我正在寻找Monitor.Wait和Application.Run的组合。我浏览了对象资源管理器,但找不到。
它存在吗?如果没有,实施它的最佳方式是什么
我仍然什么都没试过,因为我脑子里想的都很脏。类似这样的东西:
while (!(timeOutHasBeenReached || aLockHasBeenAcquired))
{
Application.DoEvents() ;
}
为了避免XY问题,让我介绍一下最终目标(与单元测试有关):
using (ApplicationContext applicationContext = new ApplicationContext())
{
using (Control control = new Control() { Visible = true } )
{
// control will do something across the web
// When the control has done it, it will raise an event invoking applicationContext.Exit()
// As a web connection is not always timing trustfull I'd like
// to specify a timeout (or eventually abort it with a Monitor.Pulse)
Application.Run(applicationContext);
}
}
控件是一个Winform组件,我不能修改它,也不想做Thread.Abort
。
不能通过执行control.Invoke(() => Application.Exit());
中止吗?或者仅仅是control.Close();
或Dispose
。