代码不能继续在线程之后

时间:2016-05-23 07:24:29

标签: python windows multithreading

我写了这段代码来锁定屏幕中间的鼠标

def lockmouse():
print "here"
while True:
    win32api.SetCursorPos((GetSystemMetrics(0)/2,GetSystemMetrics(1)/2))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,GetSystemMetrics(0)/2,GetSystemMetrics(1)/2,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,GetSystemMetrics(0)/2,GetSystemMetrics(1)/2,0,0)


t = threading.Thread(target=lockmouse())
command = "lockmouse"
    if "lockmouse" in command:
        if t.is_alive==False:
            t.start()
            time.sleep(3)
            t._Thread_stop()

并且它在t.start()之后不再继续。我一直在尝试使用不同的方法来停止该线程,但它甚至没有在该行之后进行。任何人都知道这是什么问题?

1 个答案:

答案 0 :(得分:0)

可能是您的功能没有正确缩进。它应该是:

Angular

此外,您似乎只是开始一个线程。重点是什么?

编辑:

我刚刚意识到你的函数有一个无限循环。该程序无法从t.start()继续执行,因为它必须等待该函数完成执行,因为它有一个while循环,所以它不会被执行。您需要以某种方式重构您的程序,或者如果您想保持它的原样,请参阅此答案以了解如何避免等待线程。

"Thinking in AngularJS" if I have a jQuery background?