gpt4 book ai didi

c# - IronPython 2.7 可以调用异步 .NET 函数吗?

转载 作者:行者123 更新时间:2023-12-05 07:37:56 28 4
gpt4 key购买 nike

在我的应用程序中嵌入了 IronPython 2.7,并将 clr.AddReference() 用于托管 .NET dll。

该 DLL 具有异步函数,例如:

async public Task<string> Foo(string x) {
string y=await bar(x);
return y;
}

当从 IronPython 调用时,我可以看到返回的 Task 对象,但看不到调用的结果。是否有等待调用的语法? (抱歉,如果很明显:我是 Python 新手...)

更新:在帖子的第一个版本中可能不清楚问题是什么(并修复了代码片段中的一个愚蠢的拼写错误)。上面的函数工作得很好(顺便说一句,永远不要使用 .Result 因为它会导致死锁)。

挑战在于获得 Python 的答案。在 IronPython 中,我调用这个函数:

f=mylib.Foo("hello")

并取回一个Task(不是字符串)作为返回值,这是正确的。但是,如果我尝试这样做:

g=f.Result

它死锁了(如预期的那样)。 IronPython 是否以任何方式支持与 C# 的 await 相同的语义?

最佳答案

我对 IronPython 了解不多,但异步管理由您的 .net 安装处理,并且是该语言的一项功能。

关于c# - IronPython 2.7 可以调用异步 .NET 函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48307870/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com