我有一个像这样的异步方法
public async void Method()
{
await // Long run method
}
当我调用这个方法时,我可以在这个方法完成时有一个事件吗?
public void CallMethod()
{
Method();
// Here I need an event once the Method() finished its process and returned.
}
我有一个像这样的异步方法
public async void Method()
{
await // Long run method
}
当我调用这个方法时,我可以在这个方法完成时有一个事件吗?
public void CallMethod()
{
Method();
// Here I need an event once the Method() finished its process and returned.
}
你为什么需要那个?需要等待完成吗?像这样工作:
public async Task Method() //returns Task
{
await // Long run method
}
public void CallMethod()
{
var task = Method();
//here you can set up an "event handler" for the task completion
task.ContinueWith(...);
await task; //or await directly
}
如果您不能使用 await 并且确实需要使用类似事件的模式,请使用ContinueWith
. 您可以将其视为为任务完成添加事件处理程序。