Ich habe Windows-Anwendung mit zwei Formularen FormA und FormB.Worker Thread: Deaktivieren des übergeordneten Formulars, wenn untergeordnete Formular in einem Worker-Thread aktiv ist
FormA enthält eine Schaltfläche btnGet
die, wenn sie angeklickt einen Arbeiter-Thread beginnt wie folgt
private void cmdGet_Click(object sender, EventArgs e)
{
if (pdBackgroundWorker.IsBusy == false)
{
pdBackgroundWorker.RunWorkerAsync();
}
}
Die obige Arbeitsthread eine Methode ruft die FormB
anzeigen soll wie folgt
private void pdBackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
var _verifyID = new frmFormB();
_verifyID.ShowDialog();
if (!_verifyID.blnVerified)
{
return;
}
else { //do something }
}
Jetzt, da formB
ist angezeigt von Worker-Thread, seine Eltern FormA wird weiterhin aktiv sein, obwohl ich ShowDialog
Methode verwendet, um formB
anzuzeigen.
Gibt es eine bessere Möglichkeit, dies zu handhaben, so dass, wenn FormB
aktiv ist, FormA für den Zugriff eingeschränkt werden sollte, wie ShowDialog
funktioniert für Non-Thread-Fälle?
Diese Formen nicht in der Worker-Thread sein sollte. Holen Sie sich die Bestätigung, bevor Sie mit der Hintergrundarbeit beginnen. – LarsTech