本文整理汇总了Python中win32com.client.Dispatch.connect方法的典型用法代码示例。如果您正苦于以下问题:Python Dispatch.connect方法的具体用法?Python Dispatch.connect怎么用?Python Dispatch.connect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类win32com.client.Dispatch
的用法示例。
在下文中一共展示了Dispatch.connect方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from win32com.client import Dispatch [as 别名]
# 或者: from win32com.client.Dispatch import connect [as 别名]
class Exchange:
def __init__(self):
self.connection = None
self.listen_portfo = []
self.listen_bidask = []
self.instrum = {}
self.client = Dispatch("SmartCOM3.StServer.1")
self._connected = Event()
self._termination = Event()
self._disconnected = Event()
self._disconnected.set()
self._thread = Thread(target=self._worker)
self._thread.start()
self.constants = constants
self._legalDisconnect = False
def terminate(self):
self._termination.set()
self._thread.join()
def __del__(self):
self.terminate()
def connect(self, connection=None, timeout=None):
if connection:
self.connection = copy.deepcopy(connection)
if self._connected.isSet():
return True
self.client.connect(**self.connection)
if self._connected.wait(timeout):
for p in self.listen_portfo:
self.client.ListenPortfolio(p)
for s in self.listen_bidask:
self.client.ListenBidAsks(s)
for sym, instr in self.instrum.items():
instr.waitBidAsk()
return True
return False
def disconnect(self, timeout=None):
self._legalDisconnect = True
if self._disconnected.isSet():
return True
for p in self.listen_portfo:
self.client.CancelPortfolio(p)
for s in self.listen_bidask:
self.client.CancelBidAsks(s)
self.client.disconnect()
if self._disconnected.wait(timeout):
for sym, instr in self.instrum.items():
instr.clearBidAsk()
return True
return False
def addInstrum(self, symbol, portfolio):
if symbol not in self.listen_bidask:
self.listen_bidask.append(symbol)
if portfolio not in self.listen_portfo:
self.listen_portfo.append(portfolio)
self.instrum[symbol] = Instrument(self, symbol, portfolio)
return self.instrum[symbol]
def _worker(self):
CoInitializeEx(COINIT_MULTITHREADED)
handler = WithEvents(self.client, EventHandler)
handler.setExchange(self)
while not self._termination.isSet():
PumpWaitingMessages()
self._termination.wait(0.001)
CoUninitialize()