Найти - Пользователи
Полная версия: Threading вырубается или подвешивается
Начало » Python для новичков » Threading вырубается или подвешивается
1
napuznik
Подскажите, пожалуйста, где ошибка
Скрипт должен запустить bat файл и раз в 60 секунд проверять, работает запущенная bat'oм программа или нет

import threading, subprocess, time, Tkinter
def proc1 ():
    global var
    var = 0
    th.threading.Thread (target = proc2)
    th.start ()
def proc2 ():
    while 1:
        global var
        if var == 0:
            subprocess.Popen ('c: /abc.bat')    # здесь запускается cmd (через bat) и начинается полнение другой программы
            var = 1
        else:
            #проверяется, что процесс cmd существует
            ...
    time.sleep (60)
proc buttonProc ():
   print 'text'   

Если выполнить Proc1, то скрипт запустит cmd и будет проверять каждую минуту, здесь все нормально. Но если между делом нажать на кнопку, которая выполняет buttonProc, то тред th или перестанет выполняться, или подвесит все окно. Что не так? Или, может, есть более простой способ, что бы проверка по времени и выполняемые юзером процедуры в одном окне не мешали друг-другу?
Заранее благодарю
Soteric
Используйте code теги. Или расставьте отступы.
fongostev
napuznik
А про классы слышали? И про методы объектов типа Thread?
napuznik
Soteric
Soteric, спасибо, исправил. Есть что предложить по теме?
fongostev
fongostev, спасибо. Я пока не силен в программировании. Можно в двух словах, что сделать с классами и методами, что бы тред-проверка не прерывалась?

FishHook
napuznik
Soteric
Soteric, спасибо, исправил. Есть что предложить по теме?
fongostev
fongostev, спасибо. Я пока не силен в программировании. Можно в двух словах, что сделать с классами и методами, что бы тред-проверка не прерывалась?


Вам намекают буквально на следующее.

th.threading.Thread (target = proc2)
А что такое этот th, где Вы его определили, чтобы у него волшебным образом появился метод threading?

читать тут
napuznik
FishHook, спасибо
Там опечатка. th = threading.Thread (target = proc2)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB