我的python程序通过Windows COM对象接收数据将其记录到hdf5文件中 . 为了使用COM对象,我使用了 win32com.client.DispatchWithEvents . 下面的代码显示了我的程序的简化结构 .

class Handler_realTime(object):  
    def __init__(self):
        pass

    def OnReceiveRealData(self, eventTime, eventData01, eventData02, eventData03):
        m.target_table.append( np.array([( eventTime, eventData01, eventData02, eventData03 )] )
        m.file.flush()        # <--- being delayed due to IO processing!



class MainClass(object):
    def __init__(self):
        self.file = tb.open_file('hdf5File.h5', 'a')
        self.target_table = self.file.root.realTime

        self.realReceving = win32com.client.DispatchWithEvents("Session.RealTime",Handler_realTime)
        # calls Handler_realTime whenever new data arrives

m = MainClass()

它工作正常,但我最近感觉到该程序的低性能,因为它经常 flush() 和过多的调用 . 然后,我认为 Asyncio 可以通过随机刷新文件并同时处理其他任务来提高性能 .

我已经在Python中查找了一些关于Asyncio的书籍,但我不知道是否可以在 DispatchWithEvents 中使用函数(不是类),或者在这种情况下是否可以采用Asyncio .