释放鼠标键后停止 运行 函数

Stop running function once mouse key is released

我有一个在按下鼠标键时运行的函数。我想在它发布后取消它。我将如何使用 pynput 来做到这一点?为了获得一些帮助,这是我用来执行此操作的代码,但它在等待 on_click 函数完成时不起作用,或者这是我的猜测。

running = False
i = 0
f = 4
delta_x = [1,2,3]
delta_y = [3,2,1]

def wasd(l):
    global f
    f = f + l
    print(f)
    if (f == 5):
        return True
    else:
        return False

def logging_mouse(running, i):
    while (running and i < len(delta_x)):
      print(delta_x[i],delta_y[i])
       if wasd(0) == True: break
       i = i+1
    running = False

def on_click(*args):
    global running
    global i
    print(running)
    i = args[3]
    if args[-1]:
        if not running:
            running = True
            threading.Thread(target=logging_mouse(running,i)).start()
    else:
        running = False
        wasd(1)
        f = 4
        i = 0

with Listener(on_release=wasd(1),on_click=lambda event1,event2,event3,event4: on_click(event1,event2,event3,i,event4)) as listener:
        listener.join()
while True:
    def on_press_start(*args):
        if args[-1]:
           return False

    def on_press_loop(*args):
        if not args[-1]:
            return False

    i = 0
    with Listener(on_click=on_press_start) as listener:
        listener.join()

    with Listener(on_click=on_press_loop) as listener:
        for i in range(len(delta_x)):
           print(delta_x[i],delta_y[i])
            if not listener.running:
                break
            print(i)