문제

나는 오랜 시간이 소요되는 프로세스에서 VB6 는 나를 완료하려면 실행하기 전에 다음 줄의 코드입니다.렇게 하려면 어떻게 해야 합니까?내장 기능입니까?을 제어할 수 있습니 얼마나 기다려야 할까요?

소 예제:

Call ExternalLongRunningProcess
Call DoOtherStuff

어떻게 지연'DoOtherStuff'?

도움이 되었습니까?

해결책

VB.Net:내가 사용하는 것 WaitOne 이벤트 처리합니다.

VB6.0:나는 본 적이 DoEvents 다.

Do
     If isSomeCheckCondition() Then Exit Do
     DoEvents
Loop

마지막으로,당신은 단지 잠:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sleep 10000

다른 팁

동 Nescio 의 응답 (DoEvents)작동,그것이 원인이됩니다 당신의 응용 프로그램을 사용하의 100%를 하나의 CPU.잠 만들 것입니다 UI 응답하지 않습니다.당신이 필요한 것은 두 가지의 조합하고,마법의 조합을 보이는 최고의 작품은:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

While IsStillWaitingForSomething()
    DoEvents
    DoEvents
    Sleep(55)
Wend

왜 두 DoEvents,그리고 하나 잠 55 밀리초?의 잠 55 밀리초 단위는 가장 작은 조각 그 VB6 처리할 수 있는,그리고 두 개를 사용하여 DoEvents 은 때로는 필요한 경우에 슈퍼 응답성이 필요하지 않음(API 지만,경우 응용 프로그램은 응답하여 외부 이벤트 SendMessage,Interupts,etc.).

을 확인하는 방법을 때된 프로세스가 종료되었:

는 경우에 당신은 외부 프로세스를 다음 당신은에서 호출,그것이 비동기적으로 수행됩니다.참조를 위 MS 지원 문서에 대한 방법을 때까지 기다리의 외부 프로세스가 완료되었습니다.

휴 코드들로 2 개 프로세스입니다.실행 첫 번째는,다음을 실행하"오래 실행되는 프로세스",한 후 실행하여 두 번째 과정입니다.

실행 당신의 오래 실행되는 프로세스의 중간에 현재 프로세스를 완료합니다.

나는 당신이 추가 할 수 있습니다.net framework system.dll 또는 어떤 당신의 프로젝트 참조할 수 있도록 다음과 같이 하면 됩니다:

Dim ALongTime As Integer = 2000
System.Threading.Thread.Sleep(ALongTime)

니다.가 VB6,고 VB.net 2008 년에 기계,그리고 그 항상 어려운 나를 위해 간을 전환하는 아주 다른 IDE 습니다.

System.Threading.Thread.Sleep(500)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top