我正在使用大量异步编程的C#库编写Python包装器(因为它应该是一个通信库)。我似乎找不到实现与C#的等待/机制等效功能的Python代码(选中here,here和here)。我 KNOW await / async没有直接的Python等效项,因为它们是一种语言构造,但是我希望能够显式调用某些可以完成相同工作的方法。到目前为止,我的解决方案是:
data = ch.ReadDataAsync(4000, CancellationToken.None).GetAwaiter().GetResult()
ReadDataAsync
的C#实现如下:
public async Task<byte[]> ReadDataAsync(int timeout, CancellationToken cancellationToken)
使用GetAwaiter().GetResult()
对我有用,但是由于我是C#的新手,所以我不知道它在等待时是否会释放正在运行的线程。
非常感谢任何指针!