문제
나는 오랜 시간이 소요되는 프로세스에서 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.).
휴 코드들로 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)