sourcecode

VB.NET - 인터럽트 폼 루프 및 엔드 폼

codebag 2023. 5. 13. 09:40
반응형

VB.NET - 인터럽트 폼 루프 및 엔드 폼

저는 무한 루프를 통해 데이터를 처리하는 양식을 가지고 있습니다.양식을 "닫는" 단추를 누르면 양식이 닫혔음에도 불구하고 계속 처리됩니다.양식을 완전히 종료하고 루프 문을 종료한 다음 새 양식을 엽니다.

양식을 닫는 데 사용하는 코드입니다.

frmMain.Close()
frmMain.Dispose()

참고: 스레드를 사용하지 않습니다. 단순한 VB입니다.NET 응용 프로그램.기본 시작 양식을 닫지 않습니다.

이를 위한 "올바른" 방법은 실제로 백그라운드 작업자 스레드를 사용하는 것입니다.그러나 이는 백그라운드 작업자 스레드 없이도 작동합니다.

폼 클래스에 변수를 선언합니다.

Private keepLoopAlive As Boolean

그런 다음 처리 루프를 다음과 같이 작성합니다.

keepLoopAlive = True

Do While keepLoopAlive 

    (your code that loops here)

    DoEvents

Loop

그런 다음 닫기 이벤트에서 다음을 수행합니다.

keepLoopAlive = False
Me.Close()

이렇게 하면 루프가 처음으로 종료되고 양식이 닫힙니다.

이 코드는 IDE가 아닌 메모리에서 작성한 것이므로 오타가 있을 수 있습니다.

저는 a가 아닙니다.NET developer가 유효하지 않을 수도 있지만, 무한 루프를 수행하고 있다면 루프가 여전히 유효한지 확인할 때마다 루프가 어떤 부울 값을 가지고 있는지 확인하고 실패하면 루프에서 삭제합니다.

양식을 닫을 때 부울 값을 false로 설정하면 해당 값이 삭제됩니다. 그러면 루프를 대기하고 다시 시작하는 외부 루프가 발생하거나 다른 시간에 전체 기능을 다시 시작할 수 있습니다.

언급URL : https://stackoverflow.com/questions/4772893/vb-net-interrupt-form-loop-and-end-form

반응형