从pythonnetc#dll调用方法时使用Python的asyncio?

2024-06-25 23:01:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用LibreHardwareMonitor(一个OpenHardwareMonitor的分支)阅读有关我的计算机的信息,以构建一个开源的监控系统。它工作得很好,但是当在各种硬件上调用CUpdate()方法时,它会挂起,异步IO非常适合这种情况,因为对Update()的所有调用都可以同时发送,然后当所有结果都出现时,代码可以恢复,而不是一次等待一个

我签入了LibreHardwareMonitor库代码,但是它们似乎没有使用异步。我不知道这是否相关,也不知道碧昂内特是否可以忽略这一点

简单示例代码:

import clr
clr.AddReference("LibreHardwareMonitorLib.dll")
from LibreHardwareMonitor import Hardware

handle = Hardware.Computer()
handle.Open()

# Get updates about hardware sensors (motherboard, cpu, etc)
handle.Hardware[0].Update()  # Hangs
handle.Hardware[1].Update()  # Hangs
handle.Hardware[2].Update()  # Hangs

是否可能以某种方式将这些调用与await同时发送给Update()所有人?我试过了,但它不起作用,因为Update()返回void


Tags: 代码import信息硬件系统计算机分支update