C# 从dotnet(python.NET)取消python函数
我正在使用Python.NET调用EasyOCR Python库。根据上下文的不同,检测可能会很慢(从30秒到几分钟),我的用户执行的某些操作可能会导致任务取消。据我所知,取消令牌只会在下一条C#指令中取消任务,因此在python代码运行时我被卡住了C# 从dotnet(python.NET)取消python函数,c#,python.net,C#,Python.net,我正在使用Python.NET调用EasyOCR Python库。根据上下文的不同,检测可能会很慢(从30秒到几分钟),我的用户执行的某些操作可能会导致任务取消。据我所知,取消令牌只会在下一条C#指令中取消任务,因此在python代码运行时我被卡住了 我已经看到在Python端使用asyncio有一些类似的机制,但我想知道是否有任何方法可以通过某种方式“杀死”Python进程来避免额外Python逻辑的复杂性。或者可以通过某种简单的方式共享令牌。最近,Python.NET中添加了一个与您要求的功
我已经看到在Python端使用asyncio有一些类似的机制,但我想知道是否有任何方法可以通过某种方式“杀死”Python进程来避免额外Python逻辑的复杂性。或者可以通过某种简单的方式共享令牌。最近,Python.NET中添加了一个与您要求的功能非常类似的功能(您可能需要使用3.0预览,但它可能没有进入2.5版) 这是为特性添加的测试代码。我认为这是您能够获得的最佳参考:
还要注意
设置
方法。它显示了如何正确设置多线程。没有好的方法中止不合作的线程/任务。存在Thread.Abort,但使用它是一个错误。你的选择多少有些不同
谢谢你@JonasH。我已经考虑过这些选择,因为这很复杂,但我有办法。对于#2来说,这项任务太过资源密集,不能忽略。对于第3,我没有考虑这个问题,我会去的。对于#4,也不是一个选项(类似于#2)。知道v3的ETA吗?和此相关的问题是,您认为在一个小型产品环境中进行此预览有多大风险(您是否看到许多潜在风险的PRs被合并?API是否可能在现在和发布之间发生剧烈变化?)预计将在2021年底完成。如果你想保持预览的更新,这在此刻是相当危险的。