Уведомления

Группа в Telegram: @pythonsu

#1 Июль 25, 2012 13:18:26

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Threading вырубается или подвешивается

Подскажите, пожалуйста, где ошибка
Скрипт должен запустить 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 или перестанет выполняться, или подвесит все окно. Что не так? Или, может, есть более простой способ, что бы проверка по времени и выполняемые юзером процедуры в одном окне не мешали друг-другу?
Заранее благодарю

Отредактировано napuznik (Июль 25, 2012 14:04:37)

Офлайн

#2 Июль 25, 2012 13:22:56

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Threading вырубается или подвешивается

Используйте code теги. Или расставьте отступы.



Офлайн

#3 Июль 25, 2012 13:51:43

fongostev
От: Moskau
Зарегистрирован: 2012-04-03
Сообщения: 62
Репутация: +  4  -
Профиль   Отправить e-mail  

Threading вырубается или подвешивается

napuznik
А про классы слышали? И про методы объектов типа Thread?

Офлайн

#4 Июль 25, 2012 14:09:20

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Threading вырубается или подвешивается

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

Отредактировано napuznik (Июль 25, 2012 14:10:07)

Офлайн

#5 Июль 25, 2012 14:13:33

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Threading вырубается или подвешивается

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


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

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

читать тут



Офлайн

#6 Июль 26, 2012 15:29:09

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Threading вырубается или подвешивается

FishHook, спасибо
Там опечатка. th = threading.Thread (target = proc2)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version