在Python中生成另一个线程

在Python中生成另一个线程,python,multithreading,tkinter,Python,Multithreading,Tkinter,Python新手,基本上我有一个窗口UI,只有几个按钮,当我按下一个按钮时,我想在后台开始处理/解析文件,而我仍然可以玩UI,但是我的UI变成了无响应的“旋转轮子” 尝试使用threading.thread启动线程。这个片段应该可以帮助您找到更多答案 from threading import Thread ... _thread = Thread(target=lambda: my_func()) _thread.start() 在您的示例中,您忘记了调用方法的括号 用创建线程的self

Python新手,基本上我有一个窗口UI,只有几个按钮,当我按下一个按钮时,我想在后台开始处理/解析文件,而我仍然可以玩UI,但是我的UI变成了无响应的“旋转轮子”


尝试使用
threading.thread
启动线程。这个片段应该可以帮助您找到更多答案

from threading import Thread

...

_thread = Thread(target=lambda: my_func())
_thread.start()

在您的示例中,您忘记了调用方法的括号

用创建线程的
self.process\u文件替换
self.process\u文件()

t = Thread(target=self.process_files, args=('labala',1))
您应该将函数作为目标传递给线程,而不是结果


此外,如果希望函数在线程运行时返回,请不要使用
join()

对我来说,您的代码只是一个空白屏幕。你遗漏了什么吗?请修正你的缩进。如果没有正确的缩进,Python是不可能解释的。不仅仅是缩进。。。在
validate_files()
中,您只会发现语法错误:)尝试提供完全工作的代码-我们必须为您进行额外的工作,以重现您正在经历的行为。在这种情况下,语法并不详细:如果执行
validate_files()
中的
join()
,则可能会出现问题。如果您不修复代码,就无法猜测问题出在哪里。函数启动得很好,我确实得到了正确的结果。你的语句和我的语句相同,我都试过了。self.process\u files不会启动函数,self.process\u files()会启动函数,但仍然没有响应。items=self.lb.curselection(),因为它从主UI读取列表,这是一个问题吗?@user1529412是
self.process\u file()
functor<代码>目标
应该是回调,而不是值。如果
self.process\u file()
返回一个我将删除的函数,可能会有答案,但您必须修复您的问题,因为现在不可能理解发生了什么。嗯,我明白了,我会玩它,知道self.process\u文件为什么没有被触发吗?如果您将
t.start
替换为
t.start()
它可能会被触发。@user1529412,正如我在前面的注释语法中所写的,不是一个细节。
t = Thread(target=self.process_files, args=('labala',1))