Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-Opencv VideoCapture.read-线程Java.lang中的异常。异常:未知异常_Java_Multithreading_Exception_Opencv_Video Processing - Fatal编程技术网

Java-Opencv VideoCapture.read-线程Java.lang中的异常。异常:未知异常

Java-Opencv VideoCapture.read-线程Java.lang中的异常。异常:未知异常,java,multithreading,exception,opencv,video-processing,Java,Multithreading,Exception,Opencv,Video Processing,我有一个java程序,可以运行网络摄像头,并使用opencv库捕获图像。我的相机正在工作,最终停止拍摄帧。它抛出一个异常 Exception in thread "Thread-11" java.lang.Exception: unknown exception at org.opencv.highgui.VideoCapture.read_0(Native Method) at org.opencv.highgui.VideoCapture.read(VideoCapture.java:341

我有一个java程序,可以运行网络摄像头,并使用opencv库捕获图像。我的相机正在工作,最终停止拍摄帧。它抛出一个异常

Exception in thread "Thread-11" java.lang.Exception: unknown exception
at org.opencv.highgui.VideoCapture.read_0(Native Method)
at org.opencv.highgui.VideoCapture.read(VideoCapture.java:341)
at projectana.VideoThread.run(VideoThread.java:59)
at java.lang.Thread.run(Thread.java:745)

这是我的密码:

(VideoThread.java)

在SnapshotDialog.java every formWindowClosed事件中停止线程的代码:

if (snapshot != null) {
    VideoThread.terminate();
    try {
        snapshot.join();
    } catch (InterruptedException ex) {
        Logger.getLogger(SnapshotDialog.class.getName()).log(Level.SEVERE, null, ex);
    }
    System.err.println("Successfully stop thread.");
} else {
    System.err.println("Unsuccessfully stop thread.");
}
snapshot = null;

当我在5次或更少的尝试中打开对话框时,为什么它一开始运行,最终停止拍摄帧?是opencv库还是错误的编码和线程管理,还是我的相机太累了,需要休息。谢谢各位大师。这里是Java初学者:)

在异常出现之前,您是否在输出中看到了“无法睡眠”?不,我没有看到“无法睡眠”只是我在调试线程时将其放置以澄清问题。sleep Though还有,上面的异常有时不会出现,但关闭时应用程序仍在运行您在
快照中执行的操作
线程我使用了thread.interrupt,它可以工作!谢谢我现在看到了“无法睡眠”,因为线程中断了,对吗?好的,非常感谢!
if (snapshot != null) {
    VideoThread.terminate();
    try {
        snapshot.join();
    } catch (InterruptedException ex) {
        Logger.getLogger(SnapshotDialog.class.getName()).log(Level.SEVERE, null, ex);
    }
    System.err.println("Successfully stop thread.");
} else {
    System.err.println("Unsuccessfully stop thread.");
}
snapshot = null;