Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
PictureBox Invoke wird nicht ausgeführt
darklight
myCSharp.de - Member



Dabei seit:
Beiträge: 15

Themenstarter:

PictureBox Invoke wird nicht ausgeführt

beantworten | zitieren | melden

Guten Tag,

ich muss über einen anderen Thread ein Bild an eine PictureBox zuweisen.
Dies sollte über diesen Code realisiert werden:

private void AddPictureToPictureBox(Bitmap pic)
        {
            if (this.pictureBox1.InvokeRequired)
                this.pictureBox1.Invoke(new MethodInvoker(delegate { AddPictureToPictureBox(pic); }));
            else this.pictureBox1.Image = pic;
        }

Ich debugge in diesem Codeabschnitt die Zeile mit der If-Abfrage und dem else Teil.
Es sieht aber so aus: Es wird bemerkt das ein Invoke benötigt wird, der Debugger geht dann in die nächste Zeile, führt den Invoke aus, aber gelangt nie in den else Teil. In diesen sollte er ja nach einem erfolgreichen Invoke landen.

Ich hoffe ihr könnt mir meinen Fehler aufzeigen und mir helfen.

Mit freundlichen Grüßen
Darklight
private Nachricht | Beiträge des Benutzers
Console32
myCSharp.de - Member



Dabei seit:
Beiträge: 258

beantworten | zitieren | melden

Ich kenne ein ähnliches Problem, warum das auftritt kann ich nicht sagen.

jedoch kommt es zu seltsamen verhalten wenn ich in einem Form per BeginInvoke versuche die aktuelle Operation nach hinten zu schieben bis ein UserControl in dem Form ein Invoke ausgeführt hat. Dabei ist es auch so das das Invoke nie ausgeführt wird während mein Form immer wieder mit BeginInvoke die selbe Methode aufruft.

Versuch einfach mal das Invoke auf das Form und nicht auf die Picturebox aufzurufen.
private Nachricht | Beiträge des Benutzers
darklight
myCSharp.de - Member



Dabei seit:
Beiträge: 15

Themenstarter:

beantworten | zitieren | melden

Leider bringt auch dies nicht den gewünschten Erfolg.
Er bleibt genauso wie bei meiner vorherigen Lösungen an der gleichen Stelle hängen.
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4.221
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Bleibt hängen... tönt nach Deadlock...

Wo (im UI-Thread) hast du den Thread gestartet und was machst Du dann im UI-Thread ? hast Du da ev. ein Thread.Join auf genau diesen Thread drin ? Dann würde der Join den UI-Thread blockieren und der Invoke kommt dann nicht rein...

Gib mal ein wenig mehr Code ...

Gruss
Programmierhans

PS: Wenn der Code stillsteht... schau mal im Threads-Window wo die einzelnen Threads stehen... steht davon einer auf einem .Join ?
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers