FormA와 formB의 두 가지 폼이있는 Windows 응용 프로그램이 있습니다. formB
그대로작업자 스레드 : 하위 폼이 작업자 스레드에서 활성화되었을 때 상위 폼 비활성화
포르은 상기 작업자 스레드 지금
private void pdBackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
var _verifyID = new frmFormB();
_verifyID.ShowDialog();
if (!_verifyID.blnVerified)
{
return;
}
else { //do something }
}
다음과 같이 FormB
표시되어야 메소드를 호출
private void cmdGet_Click(object sender, EventArgs e)
{
if (pdBackgroundWorker.IsBusy == false)
{
pdBackgroundWorker.RunWorkerAsync();
}
}
다음 클릭하면이 작업자 스레드를 시작 버튼 btnGet
포함 작업자 스레드에서 표시되는 경우 formB
을 표시하기 위해 ShowDialog
메서드를 사용했지만 해당 부모 FormA는 여전히 활성 상태입니다.
FormB
이 활성화되면 FormA는 액세스를 위해 제한되어야하며 ShowDialog
은 스레드가없는 경우에도 작동해야합니다.
그 형태는 작업자 스레드에 있으면 안됩니다. 백그라운드 작업을 시작하기 전에 확인을하십시오. – LarsTech