ฉันมีปัญหากับ Python ที่เธรดและส่งสตริงในอาร์กิวเมนต์
def processLine(line) :
print "hello";
return;
.
dRecieved = connFile.readline();
processThread = threading.Thread(target=processLine, args=(dRecieved));
processThread.start();
โดยที่ dRecieved คือสตริงของหนึ่งบรรทัดที่อ่านโดยการเชื่อมต่อ มันเรียกฟังก์ชั่นที่เรียบง่ายซึ่ง ณ ตอนนี้มีงานพิมพ์เพียงหนึ่งงาน "hello"
อย่างไรก็ตามฉันได้รับข้อผิดพลาดดังต่อไปนี้
Traceback (most recent call last):
File "C:\Python25\lib\threading.py", line 486, in __bootstrap_inner
self.run()
File "C:\Python25\lib\threading.py", line 446, in run
self.__target(*self.__args, **self.__kwargs)
TypeError: processLine() takes exactly 1 arguments (232 given)
232 คือความยาวของสายอักขระที่ฉันพยายามจะผ่านดังนั้นฉันเดาว่ามันแบ่งมันออกเป็นตัวละครแต่ละตัวและพยายามส่งผ่านข้อโต้แย้งแบบนั้น มันใช้งานได้ดีถ้าฉันเพิ่งเรียกฟังก์ชั่นตามปกติ แต่ฉันอยากจะตั้งมันเป็นเธรดแยกต่างหาก