首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从dotnet中取消python函数(Python.NET)

从dotnet中取消python函数(Python.NET)
EN

Stack Overflow用户
提问于 2021-06-08 15:40:30
回答 2查看 81关注 0票数 0

我使用Python.NET调用EasyOCR Python库。根据上下文的不同,检测可能会很慢(从30秒到几分钟),用户执行的某些操作可能会导致任务取消。据我所知,取消令牌只会在下一条C#指令时取消任务,所以我在python代码运行时被卡住了。

我已经看到在Python端使用asyncio有一些类似的机制,但我想知道是否有任何方法可以通过以某种方式“杀死”python进程来避免拥有额外的python逻辑的复杂性。或者以某种简单的方式分享令牌。

EN

回答 2

Stack Overflow用户

发布于 2021-06-08 16:24:51

最近在Python.NET中添加了一个与您所要求的非常相似的功能(您可能需要使用3.0的预览,但它可能没有进入2.5)。

这是为该功能添加的测试代码。我认为这是你能得到的最好的参考资料:https://github.com/pythonnet/pythonnet/pull/1337/files#diff-e846713ba20ecf06af2cc88cc1e92bae49d519998b093d2fb0f7fd6644b10092

还要注意SetUp方法。它展示了如何正确地设置多线程。

票数 1
EN

Stack Overflow用户

发布于 2021-06-08 16:35:44

没有好的方法来中止非协作的线程/任务。有Thread.Abort,但使用它是一个bad idea。你的选择或多或少

  1. 想办法将取消请求转发给python代码。
  2. 在取消任务时停止等待结果,但让任务在单独的进程中继续在python中运行,并在取消时杀死进程。
  3. 不允许取消任务。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67883361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档