等待没有阻止事件发生

时间:2013-05-21 19:00:59

标签: c# c#-4.0

编辑:不,此问题尚未在上面链接的帖子中得到解答。

如果我有这个伪代码:

// do some stuff first
wait until ClassName.EventName fires without blocking
// do the rest of the code

有没有办法在C#中使用.NET 4.0?

编辑:

我已经下载了异步目标包,我正在尝试这样做。 (我的项目是针对.NET 4.0。)

我现在已经添加了这样的代码。

private static async void WaitAsyncNoBlock()
{
    await dynMapServLayer.IsInitialized;                 
}

所以它就像这样调用。

// do some stuff first
WaitAsyncNoBlock();
// do some more stuff

但是我收到错误消息“无法等待Bool。”

2 个答案:

答案 0 :(得分:4)

如果您在.NET 4.5中谈论在代码中使用await,则可以使用Microsoft的Async Targeting Pack将该功能添加到.NET 4.0程序中。

答案 1 :(得分:0)

您必须创建一个句柄来注释该事件。并且,当它触发时,您运行代码。

例如:

MyForm.FormClosed += new FormClosedEventHandler(MyForm_FormClosed);

void MyForm_FormClosed(object sender, FormClosedEventArgs e){
//Here you put the rest of code
}