Autor Beitrag
nellyville
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mo 05.01.09 16:09 
Hallo Leute ich bekam heute von meinem Lehrmeister einen Auftrag ich sollte eine Stoppuhr welche 2 Messwerte hat mit Threads programmieren dabei sollte die Stoppuhr mit einem Button gestartet werden und sollte sich raufzählen 1,2,3,4,5,6,7,8,9,10 usw während dem die 1 te Stoppuhr läuft sollte ich die 2 Stoppuhr laufen lassen können , welche sich auch wieder raufzählt wie z.b 1,2,3,4,5,6,7,8,9..
Hat jemand eine Idee wie ich das ganze programmieren kann ? ich kann mir das ganze nicht ganz vorstellen und würde sehr froh wenn ihr mir ein bisschen auf die Sprünge helfen könntet.

Freundliche Grüsse
sharpx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 51



BeitragVerfasst: Mo 05.01.09 16:31 
öhm....
eigentlich doch alles klar oder?

2 buttons:
stoppuhr 1
stoppuhr 2

1 funktion

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
public static void counter ()
{
    for (int i=0; i<120; i++)
    {
       field.Text = i.ToString();
       System.Threading.Thread.Sleep(1000);
    }
}


Jetzt bindest du pro button einen funktionsaufruf und machst je einen thread draus ...
das wars dann auch schon.

Die andere frage ist natürlich wie "genau" diese "Stoppuhr" dann ist.
Weder die Sleep Anweisung noch die Threads sind ja im prinzip echtzeit, außer du hast jetzt wirklich 2 CPUS in der Maschine und kannst das aufteilen. Die CPU springt auch in millionstensekunden tag zwischen den threads hin und her.

ABer vom Prinzip her sollte wohl alles klar sein?

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 05.01.09 16:35 
Richtige Zeitmessung wäre einfacher und genauer...
nellyville Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mo 05.01.09 16:47 
user profile iconsharpx hat folgendes geschrieben Zum zitierten Posting springen:
öhm....
eigentlich doch alles klar oder?

2 buttons:
stoppuhr 1
stoppuhr 2

1 funktion

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
public static void counter ()
{
    for (int i=0; i<120; i++)
    {
       field.Text = i.ToString();
       System.Threading.Thread.Sleep(1000);
    }
}


Jetzt bindest du pro button einen funktionsaufruf und machst je einen thread draus ...
das wars dann auch schon.

Die andere frage ist natürlich wie "genau" diese "Stoppuhr" dann ist.
Weder die Sleep Anweisung noch die Threads sind ja im prinzip echtzeit, außer du hast jetzt wirklich 2 CPUS in der Maschine und kannst das aufteilen. Die CPU springt auch in millionstensekunden tag zwischen den threads hin und her.

ABer vom Prinzip her sollte wohl alles klar sein?


soo hab das ganze mal versucht zu programmieren

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
using System;
using System.Collections.Generic;

using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace Stoppuhr {
     public partial class Form1 : Form {
          public Form1() {
               InitializeComponent();
          }
          public static void counter() {
               for (int i = 0; i < 120; i++) {
                    Feld1.Text = i.ToString();
                    System.Threading.Thread.Sleep(1000);
               }
          } 

          private void button1_Click(object sender, EventArgs e) {
               Thread[] ta = new Thread[120]; // Thread-Array
               for (int j = 0; j < 120; j++) {
                    ta[j] = new Thread(new ThreadStart(counter)); // Threads werden erzeugt
                    ta[j].Start(); // Threads werden gestartet
               }
          }


          private void button2_Click(object sender, EventArgs e) {
               Thread[] ta1 = new Thread[120]; // Thread-Array
               for (int j1 = 0; j1 < 120; j1++) {
                    ta1[j1] = new Thread(new ThreadStart(counter)); // Threads werden erzeugt
                    ta1[j1].Start(); // Threads werden gestartet
               }
          }
     }
}


bekomme nur noch einen Fehler bei meinem Textbox namens Feld1 :S

Fehler 1 Für das nicht statische Feld, die Methode oder die Eigenschaft "Stoppuhr.Form1.Feld1" ist ein Objektverweis erforderlich. Projects\Stoppuhr\Form1.cs 17 21 Stoppuhr

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
nellyville Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mo 05.01.09 17:20 
Beim folgenden Objektverweis glaube ich dass der Fehler beim TextBox Feld liegt wisst ihr was ich machen muss z.b ein anderes Feld wählen ? Wenn ja welches ? oder woaran liegt der Fehler ich kann es nicht herausfinden
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 05.01.09 17:39 
"counter" ist als static deklariert und damit nicht auf eine bestimmte Instanz bezogen sondern auf die Klasse. Und deshalb kannst du natürlich auch nicht auf ein bestimmtes erzeugtes Feld einer bestimmten Instanz der Klasse zugreifen. ;-)
nellyville Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 06.01.09 09:27 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
"counter" ist als static deklariert und damit nicht auf eine bestimmte Instanz bezogen sondern auf die Klasse. Und deshalb kannst du natürlich auch nicht auf ein bestimmtes erzeugtes Feld einer bestimmten Instanz der Klasse zugreifen. ;-)

So vielen Dank das Programm läuft mal Fehlerfrei doch es erfüllt immer noch nicht das was ich mir vorstelle. Wenn ich den Startbutton anklicke dann läuft das Programm einfach durch ohne irgendwelche werte in der TextBox anzuzeigen. Könnte man das ganze auch anderst lösen ? Mein Code :
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace Stoppuhr {
     public partial class Form1 : Form {
          public Form1() {
               InitializeComponent();
          }
          int i = 0;
          public void counter() {
               
               for (int i = 0; i < 120; i++) {
                    Feld1.Text = i.ToString();
                    System.Threading.Thread.Sleep(1000);
               }
          } 

          private void button1_Click(object sender, EventArgs e) {
               
               Thread[] ta = new Thread[120]; // Thread-Array
               for (int j = 0; j < 120; j++) {
                    ta[j] = new Thread(new ThreadStart(counter)); // Threads werden erzeugt
                    ta[j].Start(); // Threads werden gestartet
               }
          }


          private void button2_Click(object sender, EventArgs e) {
               Thread[] ta1 = new Thread[120]; // Thread-Array
               for (int j1 = 0; j1 < 120; j1++) {
                    ta1[j1] = new Thread(new ThreadStart(counter)); // Threads werden erzeugt
                    ta1[j1].Start(); // Threads werden gestartet
               }
          }

     }
}
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 06.01.09 14:38 
Was ich mich frage: Wozu brauchst du 120 Threads :?:


Zuletzt bearbeitet von jaenicke am Di 06.01.09 14:46, insgesamt 2-mal bearbeitet
nellyville Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 06.01.09 14:41 
das ganze habe ich aus einem anderen Thread beispiel raus zusammengeschnipselt kopiert. Ja da hast du recht ich brauche doch nur 2 Threads oder ? Habe keine Übersicht über die Ganze Sache bin ziemlich Neu wenn es um die Threads geht :S
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 06.01.09 14:46 
Außerdem kannst du aus einem Thread so nicht auf das Textfeld zugreifen glaube ich, schließlich wurde das im Hauptthread erstellt. Aber da habe ich in C# zu wenig Erfahrung um genau zu sagen wie das richtig geht.

Ich probiere es mal aus bzw. schaue mal in die Doku.


Zuletzt bearbeitet von jaenicke am Di 06.01.09 15:05, insgesamt 1-mal bearbeitet
nellyville Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 06.01.09 15:04 
Ja eben darüber habe ich auch gedacht wie es überhaupt möglich wäre einen Textfeld über einen Thread zu steuern ich freue mich über jede hilfe :S
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 06.01.09 15:05 
Also bei mir funktioniert es so. Beim Debuggen geht es nicht, weil die Zugriffe auf das Element im anderen Thread gefunden werden. Das kann man verhindern, imdem man diesen Wert auf False setzt:
msdn.microsoft.com/d...rossthreadcalls.aspx

Dass es dort aber überhaupt diese Fehlermeldung gibt, heißt für mich jedenfalls, dass es in C# bzw. .NET genauso nicht korrekt ist einfach aus dem Thread auf die Textbox zuzugreifen (wie ich es aus Delphi kenne). Ich habe da auch zwei Threads gefunden, die genau dieses Thema behandeln:
www.codeproject.com/...informthreading.aspx
www.codeproject.com/.../threadingandui.aspx
nellyville Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 06.01.09 15:27 
okey ich schau mir mal das ganze an vielen dank ;)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 06.01.09 15:32 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Also bei mir funktioniert es so. Beim Debuggen geht es nicht, weil die Zugriffe auf das Element im anderen Thread gefunden werden. Das kann man verhindern, imdem man diesen Wert auf False setzt:
msdn.microsoft.com/d...rossthreadcalls.aspx

Davon würde ich dringend abraten! Wenn der Aufruf dann schief geht, sucht man sich wahrscheinlich tot, um den Fehler zu finden.

Der korrekte Weg ist über den Aufruf von Invoke. Dem übergibt man die Methode, welche im GUI-Thread ausgeführt werden soll. In Prism sieht's dann (mit anonymer Methode) so aus:

ausblenden Delphi Prism
1:
2:
3:
Invoke(methodbegin
  textBox1.Text := 'foo';
end);


Anonyme Methoden funktionieren an der Stelle auch in C# und erhöhen die Übersicht an dieser Stelle sehr, weil's fast so aussieht, als würde der Befehl wirklich an der Stelle ausgeführt ;-)

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Dass es dort aber überhaupt diese Fehlermeldung gibt, heißt für mich jedenfalls, dass es in C# bzw. .NET genauso nicht korrekt ist einfach aus dem Thread auf die Textbox zuzugreifen (wie ich es aus Delphi kenne).

Röschtösch!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
nellyville Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 06.01.09 15:42 
Ich hab mal das Beispiel programm winformthreading ausprobiert und ich sehe das ist eigentlich genau das was ich gesucht habe vielen dank Leute ;)
nellyville Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 06.01.09 17:16 
So ich hab mal mich mit dem Sourcecode von dem Tool ThreadExample (www.codeproject.com/...threadingandui.aspx) auseinander gesetzt , doch ich verstehe den Code nicht kann mir jemand weiterhelfen ?

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace ThreadExample
{
    public partial class Form1 : Form
    {
        PerformLongComputation per = new PerformLongComputation();
        private delegate void callUIUpdater(ReportProgress args);
        
        
        public Form1()
        {
            InitializeComponent();
            per.OnUpdateProgress += new EventHandler<ReportProgress>(per_OnUpdateProgress);
        }
        public void goDoWork(object sender)
        {
            if (txt_num.Text != "")
            {
                per.DoComputation(int.Parse(txt_num.Text.ToString()));
            }
            else
            {
                MessageBox.Show("Text box is empty");
            }
        }

        private void btn_compute_Click(object sender, EventArgs e)
        {

           per.stopComputation(false);
           System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(this.goDoWork));

        }
        private void per_OnUpdateProgress(object sender , ReportProgress e)
        {
                if (InvokeRequired)
                    Invoke(new callUIUpdater(UpdateUI), e);
                else
                    UpdateUI(e);

        }
        private void UpdateUI(ReportProgress e)
        {
                label1.Text = e.CurrentStatus.GetCurrentVAlue.ToString() + " OF " + e.CurrentStatus.GetNumOfIteration.ToString();
                Invalidate(true);
                Update();
        }

        private void btn_cancel_Click(object sender, EventArgs e)
        {
            per.stopComputation(true);
        }

      }
}
nellyville Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 07.01.09 09:30 
Habe mal die verschiedenen Funktionen und Befehle im Internet durchsucht doch nichts gefunden was mir klar machen konnte für was die verschiedenen Funktionen stehen.
Ich änderte beim Programm WinFormThreading ,welches sich auf 100 raufzählt und man gleichzeitig immer einen Messagebox durch einen buttonklick hervorrufen kann,die zahl hundert auf 150 um und bekam den Folgenden Fehler System.Reflection.TargetInvocationexception {"Ein Aufrufziel hat einen Ausnahmefehler verursacht."} im Application.Run(new Form1());

Brauche Hilfe :(
Hier noch der sourcecode vom WinFormThreading

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Threading;

namespace WinFormThreading
{
  /// <summary>
  /// Summary description for Form1.
  /// </summary>
  public class Form1 : System.Windows.Forms.Form
  {
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.TextBox textBox1;
    private System.Windows.Forms.Button button2;
    private System.Windows.Forms.CheckBox cbThreadPool;
    private System.Windows.Forms.ProgressBar progressBar1;
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.Container components = null;

    public Form1()
    {
      //
      // Required for Windows Form Designer support
      //
      InitializeComponent();

      //
      // TODO: Add any constructor code after InitializeComponent call
      //
    }

    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
      if( disposing )
      {
        if (components != null
        {
          components.Dispose();
        }
      }
      base.Dispose( disposing );
    }

    #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
             this.button1 = new System.Windows.Forms.Button();
             this.textBox1 = new System.Windows.Forms.TextBox();
             this.button2 = new System.Windows.Forms.Button();
             this.cbThreadPool = new System.Windows.Forms.CheckBox();
             this.progressBar1 = new System.Windows.Forms.ProgressBar();
             this.SuspendLayout();
             // 
             // button1
             // 
             this.button1.Location = new System.Drawing.Point(2456);
             this.button1.Name = "button1";
             this.button1.Size = new System.Drawing.Size(8824);
             this.button1.TabIndex = 0;
             this.button1.Text = "Start..";
             this.button1.Click += new System.EventHandler(this.button1_Click);
             // 
             // textBox1
             // 
             this.textBox1.Location = new System.Drawing.Point(2424);
             this.textBox1.Name = "textBox1";
             this.textBox1.ReadOnly = true;
             this.textBox1.Size = new System.Drawing.Size(10020);
             this.textBox1.TabIndex = 1;
             this.textBox1.Text = "--";
             // 
             // button2
             // 
             this.button2.Location = new System.Drawing.Point(12056);
             this.button2.Name = "button2";
             this.button2.Size = new System.Drawing.Size(8824);
             this.button2.TabIndex = 1;
             this.button2.Text = "Click Me..";
             this.button2.Click += new System.EventHandler(this.button2_Click);
             // 
             // cbThreadPool
             // 
             this.cbThreadPool.Location = new System.Drawing.Point(13624);
             this.cbThreadPool.Name = "cbThreadPool";
             this.cbThreadPool.Size = new System.Drawing.Size(10424);
             this.cbThreadPool.TabIndex = 3;
             this.cbThreadPool.Text = "ThreadPool";
             
             // 
             // progressBar1
             // 
             this.progressBar1.Location = new System.Drawing.Point(3288);
             this.progressBar1.Name = "progressBar1";
             this.progressBar1.Size = new System.Drawing.Size(18423);
             this.progressBar1.TabIndex = 4;
             // 
             // Form1
             // 
             this.AutoScaleBaseSize = new System.Drawing.Size(513);
             this.ClientSize = new System.Drawing.Size(272118);
             this.Controls.Add(this.progressBar1);
             this.Controls.Add(this.cbThreadPool);
             this.Controls.Add(this.button2);
             this.Controls.Add(this.textBox1);
             this.Controls.Add(this.button1);
             this.Name = "Form1";
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
             this.Text = "WinForm Threading";
             this.ResumeLayout(false);
             this.PerformLayout();

    }
    #endregion

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main() 
    {
      Application.Run(new Form1());
    }

    delegate void ShowProgressDelegate ( int totalMessages, int messagesSoFar, bool statusDone );

    private void button1_Click(object sender, System.EventArgs e)
    {

      ShowProgressDelegate showProgress = new ShowProgressDelegate(ShowProgress);
      int imsgs = 105;

      //One Way... Using ThreadPool
      if ( cbThreadPool.Checked )
      {
        object obj = new object[] { this, showProgress, imsgs };
        WorkerClass wc = new WorkerClass();
        bool rc = ThreadPool.QueueUserWorkItem( new WaitCallback (wc.RunProcess), obj);
        EnableButton( ! rc );
      }
      else 
      {
        //another way.. using straight threads
        //WorkerClass wc = new WorkerClass( this, showProgress, imsgs);
        WorkerClass wc = new WorkerClass( this, showProgress, new object[] { imsgs } );
        Thread t = new Thread( new ThreadStart(wc.RunProcess));
        t.IsBackground = true//make them a daemon - prevent thread callback issues
        t.Start();
        EnableButton ( false );
      }
    }

    private void EnableButton ( bool flag )
    {
      button1.Enabled = flag;
    }
    /// <summary>
    /// Simple method that updates the text box & progress bar
    /// </summary>
    /// <param name="totalMessages"></param>
    /// <param name="messagesSoFar"></param>
    /// <param name="done"></param>
    private void ShowProgress ( int totalMessages, int messagesSoFar, bool done )
    {
      textBox1.Text = String.Format( messagesSoFar.ToString() );
      progressBar1.Value = messagesSoFar;
      if ( done ) EnableButton ( done );
    }

    private void button2_Click(object sender, System.EventArgs e)
    {
      MessageBox.Show("You clicked me!");
    }

         


  }
}
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 07.01.09 12:56 
Ich hatte gehofft, dass jemand anderes antwortet (*auffordernd in die Runde schaut* :D), weil ich selbst es eben wie gesagt nicht auswendig weiß. Ich muss immer selbst erst nachschauen und suchen wie das funktioniert. (Habe damit aber auch kaum Probleme. ;-))

Ich schau mir den Code mal an. ;-)
nellyville Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 07.01.09 15:37 
vielen dak für deine Hilfe ich verstehe den code wirklich nicht wäre für jede hilfe dankbar
miniC#
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 75

Wiin XP Home
C# VS Express 2008
BeitragVerfasst: Mi 07.01.09 17:39 
hm woher hast du das beispiel ? ich habe noch nie etwas von einer workerclass gelesen. auch mdsn spuckt dazu nichts bezüglich der hauseigenen frameworks aus. fehlt da eventuell code ?

ps : net zu ernst nehmen , hab keine ahnung :)

gruß,
miniC#

_________________
Zitat MDSN : " ... C# (gesprochen: "si scharp") " :D