как получить результаты двух разных функций - PullRequest
0 голосов
/ 18 ноября 2018

Здравствуйте, у меня есть код, который выглядит следующим образом

from multiprocessing import Process 
from tkinter.messagebox import *
from time import sleep

def timerclose():
    sumtimer = 0
    while sumtimer <= 10 :
        sleep(0.1)
        sumtimer = sumtimer + 0.1
        print("sumtimer",sumtimer)
    return sumtimer


def conout():

    confirmation = askokcancel ("confirmation","are you sure ?")
    return confirmation

if __name__=='__main__':
    p1 = Process(target=timerclose)
    p1.start()
    p2 = Process(target=conout)
    p2.start()

Я хотел создать окно сообщения Askokcancel с таймаутом.я хочу, чтобы всплывающее окно сообщения спросило пользователя, хотим ли мы выйти или нет, и одновременно запускает счетчик.через 10 секунд, если пользователь ничего не нажимает (ок или отмена), я получаю возвращаемое значение из таймера, закрываем, игнорируем функцию conout и продолжаем с остальной частью программы.

1 Ответ

0 голосов
/ 27 ноября 2018

я решаю это с одним процессом и общим значением

def conout(n):

    n.value = int(0)
    confirmation = askokcancel ("confirmation","Σε 10 sec κλείνω Οκ ?")
    if confirmation == True :
        n.value = int(1)
    else:
        n.value = int(2)


if __name__=="__main__":
    p2 = Process(target=conout, args=(num,))
    p2.start()
    timerls = 0
    while timerls <= 10:
        sleep(0.25)
        timerls += 0.25
        print("timerls",timerls)
        if num.value == 1 :
            print ("end true",num.value)
            break
        elif num.value == 2:
            print ("end false", num.value)
            break
        else:
            print ("end0", num.value)
...