폼에 백그라운드 작업자 컨트롤이 있습니다. 나는이 양식을 업데이트하고VB.NET 크로스 스레드 액세스가 잘못되었습니다.
Private _fWait As frmWait
, 현재 무슨 일이 일어나고 있는지 사용자에게 라벨을 변경 :이 양식에서
는 내가 진행 상황을 보여줍니다 다른 형태를 가지고있다.배경 작업자가 완료되면 _fWait 양식을 닫고 싶습니다.
"잘못된 크로스 스레드 액세스 할 수 있습니다. : frmWait가에 의해 생성 된 스레드보다 diffent 스레드에서 발생 제어에 대한 액세스를"나는
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
'do the background worker stuff. I have not stated it here because it is not important
_fWait.Close()
_bDone = True
End Sub
을 사용하고하지만 오류를 얻고있다 _fWait.Close() "줄에.
누군가 내가 뭘 잘못했는지 말해 줄 수 있습니까?
감사합니다.
backgroundworker는 다른 스레드에서 작동하므로 여기에있는 호출은 이미 diff 스레드에 있습니다. 여기에서는 긴 프로세스 작업을 실행 한 다음 worker_completed 또는 progress_changed 이벤트의 컨트롤에 액세스합니다. – OneFineDay