Autor Beitrag
Necaremus
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 203
Erhaltene Danke: 18

Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
BeitragVerfasst: Fr 23.07.10 17:01 
Huhu,
die logik hinter des, was ich machen möchte habe ich denke ich verstanden, es funktioniert nur irgendwie nicht...

also, ich möchte zb, dass eine textbox bearbeitet wird 2sek nachdem das letzte textchange event abgerufen wurde.
müsste doch prinzipiell so gehen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
class MyClass
{
 int i = 0;
 public MyClass()
 {
  //stuff
 }
 private void tb_TextChanged(object sender, EventArgs e)
 {
  Thread myLThr = new Thread(()=>
      {
         int myI = ++i;
         Thread.Sleep(200);
         if (myI == i)
          {
            i = 0;
            //the code! X_x
          }
      });
  myLThr.Start();
 }
}


problem: das ding soll mit vielen sachen arbeiten, die dem thread so eigentlich nicht zustehen. kann ich da irgendwie nen event abfeuern, welches eine procedure im mainthread triggert?

hab noch nie mit selbst erstellten events gearbeitet, daher frag ich mal einfach, wäre denke ich die eleganteste methode, oder ginge es anders besser?

so far
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 23.07.10 17:07 
Hallo!

Ändere den Titel Deines Threads bitte ein bisschen ab. Du darfst da durchaus eine normale Schreibweise so mit Leerzeichen anstatt Unterstrich und mehr als zwei Worten benutzen ;-) Das hilft dann auch anderen, zu erkennen, worum es hier gehen soll. Danke! :-)

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 23.07.10 17:18 
Zitat:
also, ich möchte zb, dass eine textbox bearbeitet wird 2sek nachdem das letzte textchange event abgerufen wurde.
müsste doch prinzipiell so gehen:


Das würde man üblicherweise mit einem Timer lösen und nicht mit einem Thread. Und dein 'X_x' Code stünde dann einfach im Tick bzw. Elapsed Event (je nachdem für welchen Timer du dich entscheidest).

Moderiert von user profile iconChristian S.: C#- durch Quote-Tags ersetzt (das ist mal was Neues!)