Java UI线程冻结,尽管代码位于单独的线程中
我在一个线程中运行一些网络摄像头捕获,如下所示:Java UI线程冻结,尽管代码位于单独的线程中,java,multithreading,swing,Java,Multithreading,Swing,我在一个线程中运行一些网络摄像头捕获,如下所示: class Capture implements Runnable { @Override public void run() { while(true){ //capture images //sleep 5 seconds } } //To actually start the capture new Capture().run(); 我经常这样做,所
class Capture implements Runnable {
@Override
public void run() {
while(true){
//capture images
//sleep 5 seconds
}
}
//To actually start the capture
new Capture().run();
我经常这样做,所以我希望仍然能够执行UI功能,比如在这样做时单击按钮,但事实并非如此。JFrame上的x按钮没有响应,与其他UI组件相同
除了使用单独的线程,我还需要做其他事情吗?似乎对我不起作用。感谢之所以会发生这种情况,是因为您在调用run方法,但在执行
new Capture().run()时没有启动线程代码>您甚至没有创建线程的实例
除了使用单独的线程,我还需要做其他事情吗
是,创建并开始执行线程
new Thread(new Capture()).start();
发生这种情况是因为在执行new Capture().run()时调用了run方法,但没有启动线程代码>您甚至没有创建线程的实例
除了使用单独的线程,我还需要做其他事情吗
是,创建并开始执行线程
new Thread(new Capture()).start();
您刚刚实现了Runnable
。您尚未启动线程来执行此任务。试试这个:
new Thread(new Capture()).start();
也考虑此类作业。
< p>您刚刚执行<代码> Runnaby<代码>。您尚未启动线程来执行此任务。试试这个:
new Thread(new Capture()).start();
也考虑此类的类。
<代码>新捕获().Sistar();<代码>这将导致编译错误,因为捕获未扩展线程新捕获().start()代码>这将导致编译错误,因为捕获没有扩展线程。是的,就是这样。知道我错过了一些简单的东西;谢谢你的快速回复。是的,就是这样。知道我错过了一些简单的东西;谢谢你的快速回复。