这里是上下文:在Winform中,我使用导入库中的对象,然后启动其主要方法。这个对象将事件升级,以便在处理过程中给出过程法则(我使用我的winform方法中的一种来订阅这个法度)。主要方法返回一个布尔,只有当它结束了它的过程(所以事件上升允许知道进程的演变)更新从外部线程升级事件的控件
这是问题:我的方法订阅事件是提高了,它写入控制台的statut和它添加在列表框中的statut(使用BeginInvoke) 写入控制台的信息每当事件升级时(正是我所需要的),但是列表框显示空白,直到主方法返回其价值,然后终于显示其内容。
我希望列表框(或任何控件)显示在收到事件时从事件返回的状态,否则我无法在此过程中通知用户。
这是我的代码,你能帮我吗?
从文库由对象惜售本地方法:
private void ClientOnUpdate(object sender, EventParameters UpdateEventArgs)
{
//Instant write
Console.WriteLine("Update Event Parameters: {0}", UpdateEventArgs);
//Wait for the return of the Start method to show results inf lisbox
lbErrors.BeginInvoke((Action)delegate()
{
lbErrors.Items.Add(String.Format("Update Event Parameters: {0}", UpdateEventArgs));
});
}
启动从库中目标物的主要方法:
private void Launch()
{
lbErrors.Items.Clear();
Client cl1 = new Client();
bool res = cl1.Start();
if (res == true)
{
//do stuff ...
}
else
{
//do stuff ...
}
}
结果(身份来自被解雇的事件):
- 开始
- 第1步确定
- 步骤2 OK
- 第3步OK
- 结束