바쁘지만 무책임한 창에 대한 귀찮음이 얼마나 쉬워 집니까?


2

Windows XP의 Matlab에서 많은 시뮬레이션을 수행하고 있습니다. 일반적으로 다른 인스턴스에서 작업을 수행하는 동안 길이가 큰 시뮬레이션을 실행하는 하나의 Matlab이 항상 열려 있습니다.

약간의 성가심이 있습니다. 실수로 작업 표시 줄에서 "작업 중"창 이름을 클릭하면 계속 노란색으로 표시됩니다 (1 시간 정도) 우연히 마우스 오른쪽 버튼을 클릭하면 상황에 맞는 메뉴가 표시되지만 사라지지는 않습니다. 다른 창을 덮고-가장 성가신.

계산을 죽이지 않고 이러한 상황에 맞는 메뉴를 사라지게하는 방법에 대한 팁이 궁금합니다.

기본적으로 영원히 다음과 같이 보일 것입니다. 예시적인 화면

지금까지 wait(0.1)코드에 명령을 넣으면 이를 막을뿐만 아니라 계산 속도가 크게 느려집니다. 따라서 옵션으로 간주하지 않습니다.

답변:


1

기본적으로 Matlab은 사용자 인터페이스 스레드에서 시뮬레이션을 실행한다고 가정합니다. 따라서 시뮬레이션하는 동안 UI와 관련된 것을 처리 할 시간이 없습니다.

이 문제를 해결하려면 Matlab에 새 스레드에서 시뮬레이션을 실행하도록 지시해야합니다. 나는 이것에 대해 SO에서 약간의 비트를 발견했다.

Google에서 찾은 정보는 Parallel Computing Toolbox 의 방향을 가리키는 것으로 보입니다 .


좋은 참조! 이유를 이해하지 못하지만 matlabpool UI를 호출 한 직후 응답 성이 유지되었습니다. 잘만되면 그것은 그런 식으로 유지 :)
bdecaf

0

이것은 기본적으로 Windows 디자인의 부산물입니다. 응용 프로그램은 UI 이벤트에 대한 응답으로 "메시지"를 받고 창 다시 그리기, 크기 조정 등과 같은 작업을 수행하는 것은 응용 프로그램에 달려 있습니다.

Windows는 UI 클릭 등과 같은 이벤트에 대한 응답으로 응용 프로그램에 적절한 "메시지"를 보내지 만 응용 프로그램은이를 완전히 무시할 수 있으며 일반적으로 잘못 설계 / 포팅 된 응용 프로그램은 그렇게 할 수 있습니다.

"대화 형" "느낌"을 갖도록 설계된 응용 프로그램은 A) 이러한 메시지를 처리하기 위해 다양한 순간에 수행중인 작업을 중단 시키거나 B) 실제 작업을 수행하는 별도의 스레드를 갖습니다. "대화식 느낌"이 일부 응용 프로그램의 디자인 우선 순위가 아닌 위치를 볼 수 있으며 응용 프로그램이 실제로 자신의 프로그램을 실행하는 개발 환경 인 경우 "대화 형 느낌"에 대한 책임은 귀하에게 있습니다. Visual Studio를 사용하여 실수로 끝없는 루프를 생성하여 응용 프로그램의 CPU 사용률을 최대 100 %까지 올리는 프로그램을 실행하면 UI와 비슷한 작업을 수행합니다.

나는 지금이 프로그램의 이름을 생각할 수 없지만 많은 Linux 데스크탑과 같이 "다중 작업 공간"을 수행 할 수있는 일부 프로그램이 있습니다. 그러한 프로그램을 사용하여 MATLAB 인스턴스를 별도의 작업 공간에 둘 수 있으면 실수로 클릭하지 못하게 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.