Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C# (Visual C#, Mono) » C# Windows Forms, Threading Problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.09.2014, 13:55 Uhr
~Luke158
Gast


Schönen Guten Tag,

ich habe ein problem mit meiner Windows Form.
Ich starte in einer ListBox ein Thread.


Code:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            System.Threading.Thread newThread =
                new System.Threading.Thread(ThreadProcUnsafe);
            newThread.Start();
        }



Folgenden Code:


Code:
private void ThreadProcUnsafe()
        {
            MessageBox.Show("ttt");
            string stra1 = textBox1.Text;
            string stra2 = textBox2.Text;

            string strurl = textBox3.Text;

            MessageBox.Show("ttt");
            listBox1.Items.Add("ttt");
            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
            service.Credentials = new WebCredentials(stra1, stra2);
            service.Url = new Uri(strurl);

          
           ..............................................
           ...............................................................
           ................................................................................
              und so weiter...

        }



Mein Problem ist, dass er bei der listBox1.Items.Add("ttt"); folgende Meldung bringt:

Zusätzliche Informationen: Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement listBox1 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.

Nun meine Frage, wie kann ich die ganzen Items für die listBox in einen zusätzlichen Thread auslagern? Bzw. wie funktioniert das überhaupt?

Es gibt mehrere Variablen für die ListBox1, nur kann ich diese nicht verwenden.

Vielen Dank für die Hilfe.

Grüße
Lukas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.09.2014, 14:44 Uhr
Tommix



Hallo,
es ist in der Tat so, daß auf Elemente der Benutzeroberfläche nur aus dem Thread, in dem diese erstellt wurde zugegriffen werden darf. Du könntest mit Control.Invoke
http://msdn.microsoft.com/de-de/library/zyzhdc6b%28v=vs.110%29.aspx?ppud=4
arbeiten, aber vermutlich stimmt etwas mit Deinem Programmdesign nicht.

Gruß,
Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.09.2014, 18:36 Uhr
vollschuss



Hab ich hier auch noch was zu: www.mycsharp.de/wbb2/thread.php?threadid=33113
--
Schneller höher weiter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C# (Visual C#, Mono) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: