@
Tdy95 哦 这样呀。其实就像前面一些回复说的把 dll 调用扔到个线程就行。我也不太熟悉,问了下 gpt ,给出的代码是
import asyncio
from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(max_workers=4)
def dll_call(client_id):
# 同步调用 DLL 函数
sdk.SDK_change_something(c_char_p(client_id.encode('utf-8')), callback_instance)
# 假设这里返回结果
return "result from dll"
async def change_something(client_id):
loop = asyncio.get_running_loop()
# 在后台线程中执行 DLL 调用,避免阻塞事件循环
result = await loop.run_in_executor(executor, dll_call, client_id)
return result
确实就跟前面几楼的回复一样呢,也算是挺清晰的。