我使用Python.NET调用EasyOCR Python库。根据上下文的不同,检测可能会很慢(从30秒到几分钟),用户执行的某些操作可能会导致任务取消。据我所知,取消令牌只会在下一条C#指令时取消任务,所以我在python代码运行时被卡住了。
我已经看到在Python端使用asyncio有一些类似的机制,但我想知道是否有任何方法可以通过以某种方式“杀死”python进程来避免拥有额外的python逻辑的复杂性。或者以某种简单的方式分享令牌。
发布于 2021-06-08 16:24:51
最近在Python.NET中添加了一个与您所要求的非常相似的功能(您可能需要使用3.0的预览,但它可能没有进入2.5)。
这是为该功能添加的测试代码。我认为这是你能得到的最好的参考资料:https://github.com/pythonnet/pythonnet/pull/1337/files#diff-e846713ba20ecf06af2cc88cc1e92bae49d519998b093d2fb0f7fd6644b10092
还要注意SetUp方法。它展示了如何正确地设置多线程。
发布于 2021-06-08 16:35:44
没有好的方法来中止非协作的线程/任务。有Thread.Abort,但使用它是一个bad idea。你的选择或多或少
https://stackoverflow.com/questions/67883361
复制相似问题