用什么来替换C#类库中的WinForms Application.DoEvents()
本文关键字:Application WinForms DoEvents 什么 替换 类库 | 更新日期: 2023-09-27 18:25:08
我有一个连接到大型机的ActiveX控件(代码中的"rumba")。下面的代码在WinForms中工作,但我想把代码放在类库项目中。用什么替换Application.DoEvents()?我试着放Thread.Sleep或只是删除行,但伦巴只有在while循环结束后才开始连接。
这是我的代码:
public bool Connect(int timeOutInSeconds = 5)
{
DateTime limit = DateTime.Now.AddSeconds(timeOutInSeconds);
rumba.Connect();
while (DateTime.Now < limit)
{
string s = GetCurrentScreenAsText();
s = s.Replace("'0", null);
if (!string.IsNullOrWhiteSpace(s))
return true;
Application.DoEvents();
}
return false;
}
- 如果你真的想使用它,你可以随时在你的项目中包括system.windows.forms.dll
2,调用Application.DoEvent的唯一原因是允许应用程序在处理事件时处理其他事件。因此,您希望将事件包装在一个单独的线程中,例如使用BackgroundWorker或thread对象来模拟异步调用。在WPF中,有一个Dispatch,您可以调用或beginInvoke来异步执行方法。