FOR ループの実行中にスレッドをテストするための小さなコードを作成し、別のクラスで別の関数を実行しています。
このコードは非常にうまく機能しますが、スレッドを 10 秒以上にしたい場合は、IDLE で次のエラーが発生します。
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Python33\lib\threading.py", line 637, in _bootstrap_inner
self.run()
File "C:\Python33\lib\threading.py", line 594, in run
self._target(*self._args, **self._kwargs)
TypeError: main() takes 2 positional arguments but 3 were given
threading.py モジュールの問題のようですが、きっと解決策があるはずです。
以下は私が持っているコードです:
import threading, time
class Application:
def __init__(self):
self.main()
def main(self)
global count
count = int(input("How many seconds do you want it to Thread?\n"))
if count:
thread = Threading(count)
else:
pass
def test(self):
print("Printing in another class.", self)
class Threading:
def __init__(self, y):
print("Starting Thread...")
number = str(count)
thread = threading.Thread(target=self.main, args=number)
thread.start()
for i in range(count):
print("Looping...", i)
time.sleep(1)
def main(self, argument):
while (int(argument)>0):
print("Threading...", argument)
argument = int(argument) - 1
Application.test(argument)
time.sleep(1)
if __name__ == '__main__':
app = Application()
str
コード内のand部分を変更するとint
、引数はシーケンスでなければならないため、スレッドはまったく実行されません。
私の質問は、コードを 10 秒以上実行できるようにするにはどうすればよいかということです。