Autor Beitrag
chrizstone
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 25.05.09 15:07 
Hi Leute, ich hab ne Frage und zwar möchte ich mir eine klasse bauen die z.B alle 30sek eine andere Klasse aktualisiert oder verändert! Also ich wollte da Backgroundworker einsetzen, nur weiss ich nicht genau ob damit klappt! Wie gesagt eine Klasse soll eine andere ändern bzw. aktualisieren!

Ideen?
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 25.05.09 15:21 
Hi,

was meinst du mit ändern/aktuallisieren? Meinst du ein Property der Klasse einen neuen Wert zuweisen? Sowas kannst du machen indem du dem Backroundworker als Parameter die zu Änderne Klasse mitgibst.

Das Konstrukt hört sich für mich aber komisch an.. vlt. solltest du die Architektur nochmal überlegen.

Gruß Daniel
chrizstone Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 25.05.09 15:27 
Naja ich meine es so:

Ich habe eine Form mit beispielsweise einer Textbox drauf! Jetzt möchte ich mir ne Klasse bauen wo dann alle 30sek ein Thread gestartet wird der die Textbox ändert! Also den Text der in der Box angezeigt wird...

Also mir gehts ums Prinzip, das mit textbox ist nur ein beispiel!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 25.05.09 16:23 
Dann solltest du dafür besser die Komponente 'Timer' einsetzen. Einfach das Timer-Intervall auf 30000 (d.h. 30s) setzen und deine Aktion im Timer-Event ausführen.
chrizstone Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 25.05.09 16:27 
Achso also dann beim Aufruf der Klasse im Konstruktor einen Thread starten, in diesem dann die Änderung machen, Timer aktivieren und dann nach Ablauf der zeit wieder den Thread aufrufen? Dann müsste es sich ja alles immer in 30sek Abständen wiederholen oder?
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 25.05.09 16:47 
Du brauchst es dir nicht so kompliziert zu machen.

Nimm einfach einen Timer und weiß dem eine CallBack-Methode zu.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
(Global)
Timer tChangeBackgroundColor = new Timer();

(z.b. Konstruktor)
this.tChangeBackgroundColor.Tick += new EventHandler(tChangeBackgroundColor_Tick);
this.tchangeBackgroundColor.Interval = 30000// alle 30ig sekunden in ms (30*1000)
this.tChangeBackgroundColor.Start()


In der setzt du dann deine Farbe z.B.:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
        void tChangeBackgroundColor_Tick(object sender, EventArgs e)
        {
            this.label1.BackColor = GetRandomColor();
        }

        private Color GetRandomColor()
        {
            Random r = new Random();

            return Color.FromArgb(r.Next(0255), r.Next(0255), r.Next(0255));
        }


Gruß
chrizstone Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 25.05.09 16:55 
Japp das funktioniert perfekt...genauso möchte ich das haben! Ich danke dir, aber eine wichtige Sache fehlt noch! Und zwar soll das ganze in einem eigenen Thread laufen! Wie genau mach ich das?