小编Dan*_*use的帖子

为什么我不能在Python的新线程中创建COM对象?

我正在尝试在Python的新线程中从dll创建一个COM对象 - 所以我可以在该线程中运行消息泵:

from comtypes.client import CreateObject
import threading

class MessageThread(threading.Thread):

    def __init__(self):
        threading.Thread.__init__(self)
        self.daemon = True

    def run(self):
        print "Thread starting"
        connection = CreateObject("IDMessaging.IDMMFileConnection")
        print "connection created"

a = CreateObject("IDMessaging.IDMMFileConnection")
print "aConnection created"
t = MessageThread()
t.start()
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误跟踪:

aConnection created
Thread starting
>>> Exception in thread Thread-1:
Traceback (most recent call last):
  File "c:\python26\lib\threading.py", line 532, in __bootstrap_inner
    self.run()
  File "fred.py", line 99, in run
    self.connection = CreateObject("IDMessaging.IDMMFileConnection")
  File "c:\python26\lib\site-packages\comtypes\client\__init__.py", line 235, in CreateObject
    obj = comtypes.CoCreateInstance(clsid, clsctx=clsctx, interface=interface) …
Run Code Online (Sandbox Code Playgroud)

python com comtypes python-multithreading

4
推荐指数
1
解决办法
2844
查看次数

标签 统计

com ×1

comtypes ×1

python ×1

python-multithreading ×1