진행 표시 줄Re: JSL은 물레 또는 막대와 유사한 "바쁨" 표시기를 제공합니까?
다음은 JSL로 만든 진행률 표시기의 예입니다. 네임스페이스를 사용하여 코드를 캡슐화합니다.마지막 몇 줄은 테스트입니다. 설정을 시도하십시오. 작업량 더 크거나 작습니다.원활한 성능을 위해 progress:set 함수를 상당히 자주 호출해야 합니다. progress:init 함수는 올바른 비율을 얻기 위해 수행될 총 작업량을 알아야 합니다.
편집: JSL 사본을 첨부했습니다. 분명히 인라인 JSL이 올바르게 표시되지 않을 수 있습니다.

progress = New Namespace(
"progress"
);
progress:init = Function( {workload},
progress:TotalWork = workload;
progress:Current = -1;
progress:tick = Tick Seconds();
progress:Window = New Window( "progress",
H List Box(
Spacer Box( size( 20, 20 ) ),
progress:busy = Busy Light( <<SIZE> 1 / 30,
progress:tick = now;
If( pct != progress:Current,
progress:Current = pct;
progress:left << size( progress:Current, 20 );
progress:right << size( 100 - progress:Current, 20 );
progress:text << settext( Char( pct ) || "%" );
);
progress:busy << advance;
Wait( 0 );
)
);
progress:term = Function( {},
progress:Window << closeWindow
);
/////////////////////////
// test
/////////////////////////
workload = 1e6; // 1e6 is about 5 seconds
progress:init( workload );
For( i = 1, i <= workload, i++,
progress:set( i )
);
progress:term();</SIZE>
Re: 진행률 표시줄좋은 질문.
질문하신 테스트는 시간 낭비인 초당 30회 이상 디스플레이 업데이트를 방지하도록 설계되었습니다. 실제로 해당 테스트가 없으면 예제는 디스플레이를 백만 번 업데이트하고 실행하는 데 매우 오랜 시간이 걸립니다.
이 예에서는 1e6 파일이 있다고 가정합니다. 코드의 마지막 6줄과 유사한 루프를 작성하여 직전에 파일 처리를 수행해야 합니다. 진행률:세트(i) . 그리고 1e6을 파일 수로 변경하십시오.
Re: 진행률 표시줄안녕 크레이지
진행률 표시줄에 대해 공유해 주셔서 감사합니다.
진행률 표시줄로 얼마나 많은 파일이 처리되었는지 모니터링하고 싶습니다.
그래서 내 "작업량"은 '시간'이 아니라 '수'에 관한 것입니다. (폴더 내 N개 파일)
"progress:tick"과 문장을 삭제해야 한다는 뜻인가요?
If( now - progress:tick > 1 / 30,
progress:tick = now;
나에게 몇 가지 조언을 줄 수 있습니다.
감사해요.