for 루프 작업을 오래하는 동안 UI가 중단 된 것처럼 보이지 않게하려면 어떻게합니까Cpk 계산에 포함 할 프로세스, 온도 및 전압을 사용자가 선택할 수있는 UI를 만들었습니다. 스크립트는 프로세스, 온도 및 전압의 각 조합을 반복합니다. UI가 작동하는 동안 UI가 중단되는 것을 알았습니다. 이것을 피할 수있는 방법이 있습니까? vb6 이상의 DoEvents와 비슷한 기능, 백그라운드 프로세스 작업 자라고 생각합니까?
스크립팅다시 : 루프 작업을 오래하는 동안 UI가 멈추는 것처럼 중지하는 방법 @TheRealYeti ,
다른 방향에서 질문을 공격하면 스크립트가 비효율적 일 수 있습니다. 스크립트를 실행하는 데 몇 시간이 걸리고 1 ~ 2 분 안에 다시 실행되도록 스크립트를 작성했습니다. 자세한 내용이 없으면 평가하기가 어렵습니다.
vb6을 알고 있다면 사용자 입력을 얻을 수 있고 스크립트는 작업을 수행하기 위해 JSL 스크립트를 생성 할 수 있지만 DoEvents를 사용하는 VB6을 통해 실행할 수 있습니다. 나는 그 기능을 모르거나 VB 전문가도 아닙니다.
JMP 문서 "Automation Reference"는 VB에 노출 된 많은 JMP 라이브러리 함수를 가리 킵니다.
JMP 세션을 작성하고 표시하려면 VB에 다음 코드를 추가하십시오.
스크립트.
MyJMP를 JMP.Application으로 흐리게
JMP.Document로 JMPDoc을 흐리게 표시
MyJMP = CreateObject ( "JMP.Application") 설정
MyJMP.Visible = True
JMP 라이브러리 함수 인 Run JSL
JSL 실행 파일
그 중 어느 것이 도움이되는지 확실하지 않습니다.
다시 : 루프 작업을 오래하는 동안 UI가 멈추는 것처럼 중지하는 방법JSL에서 루핑하는 경우 caption ()에 호출을 추가하여 사용자에게 진행 상황을 알릴 수 있습니다.
for (i = 1, i <= 1000000, i++,
a = i*2;
b = a^i;
if (mod(i, 1000) == 0,
caption("Processing ... " || char(i));
wait(0);
);
);
caption(remove);다시 : 루프 작업을 오래하는 동안 UI가 멈추는 것처럼 중지하는 방법많은 시간이 소요되는 개별 작업을 수행하는 경우이 상태 위젯을 사용할 수 있습니다.
활동 상태 클래스
사용자에게 진행 상태를 알려주고 강제로 화면을 업데이트합니다.
다시 : 루프 작업을 오래하는 동안 UI가 멈추는 것처럼 중지하는 방법내 코드는 1 분 안에 실행됩니다. 프로세스가 진행되는 동안 JSL로 만든 GUI가 응답을 멈춘 것처럼 보일 것입니다. 스크립트와 GUI가 모두 같은 스레드에서 실행되기 때문에 이것이 잘못이라고 생각합니다. VB6에서는 for 루프 내에 DoEvents 명령을 추가하는 것이 빠른 해결책이 될 수 있으며 UI가 요소를 업데이트하고 응답하는 것처럼 보이지만 총 작업 시간이 더 오래 걸립니다.
스크립트를 JMP 자체에 통합하고 추가 기능으로 만들어 다른 사용자가 설치하고 재사용 할 수 있기를 바랍니다. VB6 경로를 내려 가면 VB6을 사용하여 JSL 스크립트를 생성 한 다음 실행하는 대신 VB6에서 완전히 수행합니다. 모든 의견을 보내 주셔서 감사합니다.:)
다시 : 루프 작업을 오래하는 동안 UI가 멈추는 것처럼 중지하는 방법기다림이 필요한 것 같습니다!
내가 볼게 @ 데이비드 다음 제안입니다.
감사!다시 : 루프 작업을 오래하는 동안 UI가 멈추는 것처럼 중지하는 방법또는 같은 코드를 수정 진행 표시 줄 당신의 요구를 충족시키기 위해. @ 의 상태 클래스도 좋아 보인다!