Python 在线程中使用WMI无法正常工作

Python 在线程中使用WMI无法正常工作,python,python-3.x,wmi,python-multithreading,Python,Python 3.x,Wmi,Python Multithreading,因此,我一直在尝试为我的学校项目构建一个进程监视器,在尝试使用WMI来监视写入字节和读取字节的修改时,我遇到了一个问题,我尝试了这种方法,当它自己工作时,当我尝试以以下方式将其放入循环时,它无法正常工作(它有一些问题) import sys sys.coinit_flags = 0 import wmi import pythoncom import time import threading def watch_for_modification(): global GLOBAL_

因此,我一直在尝试为我的学校项目构建一个进程监视器,在尝试使用WMI来监视写入字节和读取字节的修改时,我遇到了一个问题,我尝试了这种方法,当它自己工作时,当我尝试以以下方式将其放入循环时,它无法正常工作(它有一些问题)

import sys
sys.coinit_flags = 0

import wmi
import pythoncom
import time
import threading


def watch_for_modification():
    global GLOBAL_START_FLAG
    print("started")
    pythoncom.CoInitializeEx(sys.coinit_flags)
    try:
        con = wmi.WMI()
        process_watcher = con.Win32_Process.watch_for("modification")
        print("created watcher")
        while GLOBAL_START_FLAG:
            print("8")
            try:
                new_process = process_watcher()
                prev_proc = new_process.previous
                pid = new_process.Processid
                name = new_process.Caption
                write_bytes = new_process.WriteOperationCount
                read_bytes = new_process.ReadOperationCount
                prev_write_bytes = prev_proc.WriteOperationCount
                prev_read_bytes = prev_proc.ReadOperationCount
                if prev_read_bytes != read_bytes or prev_write_bytes != write_bytes:
                    process_to_append = {
                        'pid': pid,
                        'name': name,
                        'write_bytes': write_bytes,
                        'read_bytes': read_bytes,
                        'update_epoch_time': time.time()
                    }
                    print("Modification occurred at", new_process.timestamp)
                    print(new_process.path())
                    print(process_to_append)
                    #Update_list_sem.acquire()
                    #UPDATE_PROCESSES.append(process_to_append)
                    #Update_list_sem.release()

            except wmi.x_wmi_timed_out:
                print(wmi.x_wmi_timed_out)
                pass
    finally:
        pythoncom.CoUninitialize()


t5 = threading.Thread(target=watch_for_modification, daemon=True)
t5.start()
while True:
    pass