Форум сайта python.su
class TGFC():
def __init__(self, working_time):
self.timer = WFMSR.RECORD_SECONDS
self.archive = []
self.working_time = working_time
self.iterations = working_time/self.timer
self.arch_result = self.our_files_creating()
def WFMSR_add(self, f_index):
self.archive.append(WFMSR(f_index))
def archive_appending(self, prefix='', postfix=''):
for i in enumerate(range(self.iterations)):
threading.Timer(self.timer, self.WFMSR_add('_'+prefix+str(i[0])+postfix))
def our_files_creating(self):
thread.start_new_thread(self.archive_appending, ('', ''))
time.sleep(1.5)
thread.start_new_thread(self.archive_appending, ('', '1'))
...
def main():
our_main_instance = TGFC(10)
if __name__ == '__main__':
main()
>>> import myModule
>>> a = TGFC(10)
D:\Python26>python.exe file.py
* recording
* recording
Unhandled exception in thread started by
Error in sys.excepthook:
Original exception was:
Отредактировано (Фев. 14, 2012 13:17:36)
Офлайн
В выводе есть строчка ‘* recording’ - в коде ее нет, значит код не полный.
На первый взгляд не хватает вот этого: http://docs.python.org/library/threading.html#threading.Thread.join
Так как при запуске внутри интерпретатора работе нити никто не мешает, а вот в программе main вполне может завершиться до того как отработает нить.
Отредактировано (Фев. 14, 2012 12:27:22)
Офлайн
s0rgЛогично. :) В данном случае мы, создавая экземпляр TGFC-класса создаем экземпляр WFMSR(f_index) - с определенным индексом, несколько раз, и ложим его в self.archive, нашего TGFC. При создании WFMSR делается нечто, что нам и печатает результат, создавая файлы в определенной папке.
В выводе есть строчка ‘* recording’ - в коде ее нет, значит код не полный.
s0rgНе понял :[ Можно другими словами? Вроде бы код идентичный.
На первый взгляд не хватает вот этого: http://docs.python.org/library/threading.html#threading.Thread.join
Так как при работе внутри интерпретатора работе нити никто не мешает, а вот в программе main вполне может завершиться до того как отработает нить.
Отредактировано (Фев. 14, 2012 12:37:34)
Офлайн