python中的简单线程

python中的简单线程,python,multithreading,python-multithreading,Python,Multithreading,Python Multithreading,我的GUI中有一个函数需要一段时间才能完成,因为它与另一个程序通信。因为我不想每次都等到它完成后再继续使用GUI,所以我想作为一个线程启动这个函数 我试着这样做: threading.Thread(target=self.Sweep, args=Input).start() 但它什么也没做,没有例外,没有结果。如果我正常启动函数,它工作正常 self.Sweep(Input) 我做错了什么?我不知道这是否足以解决问题,但至少,你应该做出正确的判断 args=(Input,) 以便与“直接”

我的GUI中有一个函数需要一段时间才能完成,因为它与另一个程序通信。因为我不想每次都等到它完成后再继续使用GUI,所以我想作为一个线程启动这个函数

我试着这样做:

threading.Thread(target=self.Sweep, args=Input).start()
但它什么也没做,没有例外,没有结果。如果我正常启动函数,它工作正常

self.Sweep(Input)

我做错了什么?

我不知道这是否足以解决问题,但至少,你应该做出正确的判断

args=(Input,)
以便与“直接”呼叫匹配


Thread()
args
参数应该是包含
target
函数所有参数的元组。由于有一个参数,
Input
,因此必须匹配此元组来表示此参数。

线程化模块的使用方式与Java等效模块相同

我想你是在尝试使用。试试这个:

thread.start_new_thread(someFunc, ())

你可以得到一些关于
线程的帮助。开始新线程

在我看来,glglgl是正确的

您应该传递“args”的元组或列表,例如
args=[1]
而不是
args=1
。 发生的情况是,你启动你的线程,它立即死亡,因为它试图打开一个序列-args-你传递了一个序列以外的东西-并且抛出了一个异常
TypeError


我怀疑您的日志记录-您应该看到此异常。

您如何确定“结果”?你不希望它返回,是吗?不,我在另一个程序中看到了结果,它与如果你在self.Sweep()中放入一些调试打印,会发生什么情况?我尝试了两个答案,结果相同;未执行调试打印您正在使用的GUI工具包是什么?