在不阻塞的情况下等待事件触发

本文关键字:等待 事件 情况下 | 更新日期: 2023-09-27 18:14:36

编辑:不,这个问题还没有在上面链接的帖子中得到回答。

如果我有这样的伪代码:

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

在c#和。net 4.0中有没有办法做到这一点?

编辑:

我已经下载了Async目标包,我正试图这样做。(我的项目目标是。net 4.0)

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

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

所以它是这样叫的

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

但是我得到错误消息,"不能等待Bool。"

在不阻塞的情况下等待事件触发

如果你想在代码中像在。net 4.5中那样使用await,你可以使用微软的Async Targeting Pack将该功能添加到你的。net 4.0程序中。

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

例如:

MyForm.FormClosed += new FormClosedEventHandler(MyForm_FormClosed);

:

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