Zum Inhalt springen

[C#] Winforms Oberfläche nicht erreichbar


SeToY

Empfohlene Beiträge

Hallo,

ich habe derzeit das Problem, dass bei Rechenintensiven Aufgaben die Oberfläche nicht mehr erreichbar ist. Simples "Keine Rückmeldung" im Taskmanager, aber das Programm an sich läuft noch.

Hat jemand einen Tipp, oder einen guten Guide für einen Background-Worker, mit dem das ganze realisierbar zu seien scheint?

Danke und Gruß

SeToY :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke dir, ich habe jedoch noch ein Problem :P

Ich rufe meinen Worker folgendermaßen auf:


        private void btnExport_Click(object sender, EventArgs e)

        {

            if (cbServerName.Text != string.Empty && cbDatabase.Text != string.Empty)

            {

                backgroundWorker1.RunWorkerAsync();

            }

            else

            {

                MessageBox.Show("No Server or Database set!");

            }

        }

So weit so gut... Nun sieht meine DoWork-Methode so aus:

                //tbDirectory.Enabled = false;

                //directoryPath = tbDirectory.Text + "\\";

                SqlConnectionStringBuilder stringBuilder = new SqlConnectionStringBuilder();

                stringBuilder.DataSource = cbServerName.Text;

                stringBuilder.InitialCatalog = cbDatabase.Text;

                stringBuilder.UserID = tbUsername.Text;

                stringBuilder.Password = tbPassword.Text;


[......]

Wenn ich nun in meine DoWork-Methode debugge, sehe ich, dass der BackgroundWorker nach dem initialisieren des StringBuilders direkt wieder in die "RunWorkerCompleted"-Methode springt... Obwohl die DoWork-Methode noch viel viel länger ist... Er macht einfach nicht alles, was in der Methode steht.

Lieben Gruß

SeToY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bin mir grad ned wirklich sicher, aber kann des daran scheitern, dass du versuchst mit dem Backgroundworker auf Controls zuzugreifen???

Du holst dir ja zum Beispiel mit


stringBuilder.DataSource = cbServerName.Text;

den aktuellen Text einer ComboBox nehm ich etz mal an. Und ich glaub mit sowas hat ein Backgroundworker probleme.

Besser wäre es wenn du ihm die Werte der Textboxen und ComboBoxen direkt mitgibst.

Ich hab lange nichts mehr mit Backgroundworkern gemacht, darum bin ich mir nicht ganz sicher... (nur zur info) :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

bin zwar nicht besonders gut in C#, aber ich denke dein Code müsste auf eine Exception laufen. Kannst ja mal mit Try Catch abfangen !

Man darf nämlich im DoWork nicht auf Elemente der Maske zugreifen.

Ich löse diesen Umstand meißt so, dass ich die Werte der MaskenElemente vorher in eine lokale Variable speichere und auf diese kann man dann im DoWork- Zweig zugreifen.

Viel Spass

Hans-Jörg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ja - habe jetzt auch gemerkt, dass ich nicht auf die Controls des GUI zugreifen kann. Habe diese nun in variablen initialisiert, mit welchen ich im Worker arbeite.

@2k:

Danke, habe ich auch noch nicht gesehen :)

Vielen Dank noch mal an alle, mein Programm steht und läuft... und läuft und läuft :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...