我正在使用一种同步的第三方函数,我无法修改,例如:
public void startDoSth(Action<string> onDone)
startDoSth
启动一个新线程来执行任务,并立即返回,当任务完成时,将调用我的onDone
函数。
我想写一个下面这样的异步方法来包装它:
public async Task<string> doSthAsync();
因此,有人可以这样调用:
string s = await doSthAsync()
onDone(s)
在
doSthAsync()
中,我调用startDoSth()
来执行实际的操作。但是我不知道如何编写doSthAsync()
。请问有人能告诉我是否有可能以及如何做到吗?非常感谢。
Task.Run
时,为什么需要这个方法呢? - asaf92Task.Run
会有什么作用?根据 OP 的说法,工作已经在新线程上运行了。 - Johnathan BarclayonDone
参数是实际正在进行的工作。 - asaf92