Java로 작성된 GUI 부분이있는 이미지 처리 응용 프로그램을 작성했으며 번호 계산 부분은 C로 작성되었으며 JNI를 통해 호출됩니다.통화 중일 때 Java 창을 가져올 수 없습니다.
내 문제는 응용 프로그램이 이미지를 처리하는 데 20-30 초가 소요되며이 시간 동안 응용 프로그램은 작업 전환기 (Alt-Tab)에서 사라지고 응용 프로그램의 창을 이동할 수 없다는 것입니다. 앞에 (이것은 내 주요 관심사입니다). 작업 표시 줄을 통해 응용 프로그램을 앞으로 가져올 수도 있습니다.
일부 추가 정보를 원하시면 :
- 응용 프로그램이 붙어 있지 않거나 아무것도, 나는 예상대로 진행 표시 줄을 업데이트 것을 볼 수 있습니다.
- 계산이 끝나면 응용 프로그램은 작업 전환기를 표시하고 다시 최상위 창이 될 수 있습니다. 새 계산을 시작하면 응용 프로그램이 작업 전환기에서 다시 사라집니다.
- JNI 호출은 EDT의 별도 스레드에서 수행되며 주 스레드와 작성된 스레드를 모두 시도했습니다.
- EDT가 차단되지 않았습니다. WindowListener 및 WindowFocusListener의 메서드에 printfs를 추가했으며 포커스가 손실되면 적절한 메서드가 호출됩니다.
- Mac OS X에서는 응용 프로그램이 문제없이 작동합니다.
- 이것은 Windows 2003 Server의 Java 1.6에 있습니다.
- 처음에는 스레드로 불쾌한 일을하고있는 것은 openMP라고 생각했지만, 사용을 해제해도 아무런 효과가 없었습니다.
- JNI lib는 MinGW 4.5로 컴파일됩니다.
Windows에서는 응용 프로그램이 응답/일부 요청을 보내거나 그렇지 않으면 작업 전환기에서 벗어날 것으로 예상됩니다. 그러나 나는 심지어 구글을 대답 할 수있을 정도로 윈도우 프로그래밍에 대해 충분히 알지 못한다. 누군가 포인터를 줄 수 있습니까?
클라이언트 - 서버 패러다임으로 이동하여 파일을 업데이트하면서 서버에서 번호 계산을 수행 할 수 있으므로 Java 응용 프로그램을 항상 사용자가 사용할 수 있습니까? 서버는 소켓 연결을 통해 업데이트를 보낼 수 있습니다. –
아, 일하기로되어있는 것들 중 하나이기 때문에 좀 과격한 것 같습니다. :-D – Kalle