示例#1
0
文件: win32.py 项目: tkrym02/anaconda
    def start(self):
        if _kernel32.GetCurrentThreadId() != self._event_thread:
            raise RuntimeError(
                'EventLoop.run() must be called from the same ' +
                'thread that imports pyglet.app')

        self._timer_proc = types.TIMERPROC(self._timer_proc_func)
        self._timer = _user32.SetTimer(0, 0, constants.USER_TIMER_MAXIMUM,
                                       self._timer_proc)
        self._timer_func = None
        self._polling = False
        self._allow_polling = True
示例#2
0
    def __init__(self):
        super(Win32EventLoop, self).__init__()

        self._next_idle_time = None

        # Force immediate creation of an event queue on this thread -- note
        # that since event loop is created on pyglet.app import, whatever
        # imports pyglet.app _must_ own the main run loop.
        msg = types.MSG()
        _user32.PeekMessageW(ctypes.byref(msg), 0, constants.WM_USER,
                             constants.WM_USER, constants.PM_NOREMOVE)

        self._event_thread = _kernel32.GetCurrentThreadId()

        self._wait_objects = []
        self._recreate_wait_objects_array()

        self._timer_proc = types.TIMERPROC(self._timer_proc_func)
        self._timer = _user32.SetTimer(0, 0, constants.USER_TIMER_MAXIMUM,
                                       self._timer_proc)