Thread Probleme

dark80

Grünschnabel
Hallo zusammen,

Szenario:
Ich habe ein Messgerät welches ich per Serielle Schnittstelle auslesen will.
Das Auslesen ist nicht das Problem. Das Problem ist, die Daten der Methode einer anderen Klasse, die in einem separaten Thread läuft, auszulesen.

In der Main Klasse habe ich eine TextBox die den ausgelesenen string anzeigen soll.
Wie kann ich nun die Daten aus eine anderen Klasse mit eigenen Thread an die TextBox, die sich in der class Form1 befindet, schicken.


Das ist die Klasse die das Auslesen übernimmt.
C#:
namespace Fluke
{
    class serial
    {
        private string m_buffer;
        private Thread thethread;
        private SerialPort serial1;
        public serial(SerialPort serial1)
        {
            m_buffer = "";
            this.serial1 = serial1;
            this.serial1.Open();
            thethread = new Thread(new ThreadStart(do_the_job));
            thethread.Start();          
        }
        public void closeThread()
        {
            thethread.Abort();
            this.serial1.Close();
        }
        private void do_the_job()
        {
            // hier werden die Daten aus dem Messgerät gelesen.
            for (int i = 0; i < 100000; i++)
            {
                m_buffer = Convert.ToString(i + i / 2);
            }
        }
    }
}

Diese soll das Haupt Programm repräsentieren.
C#:
namespace Fluke
{    
    public partial class Form1 : Form
    {
        private serial CSerial;                
        public Form1()
        {
            InitializeComponent();                         
        }        
        void show_Click(object sender, System.EventArgs e)
        {
            CSerial = new serial(serialPort1);                          
        }
        void Stop_Click(object sender, System.EventArgs e)
        {
            CSerial.closeThread();
        }        
    } 
}


Thx
Dark80
 
Ist die Frage so schwer oder soll ich diese einfach nur anders stellen?!
Weis denn wirklich keiner eine antwort

Grüße
 
Schon mal die Suchfunktion benutzt? :rolleyes:

[thread=260455]C# threading - Probleme - Thread[/thread]
[post=1337449]AW: Probleme beim neuzeichnen von pictureBox - Post[/post]
[thread=199136]Threading hilfe - Thread[/thread]
[thread=261587]Multi-Threading - Teil1: Einführung - Tutorial[/thread]
 
Zuletzt bearbeitet:
Sorry, das ich mich erst jetzt wieder melde. Musste viel zeug für die UNI machen und die auf der Arbeit wollen mich auch nicht in ruhe lassen. ;)

Hab es jetzt auch mit einem Invoke gelöst.
Ich sehe aber, dass ich mich noch mit dem Thema Beschäftigen muss.

C#:
protected delegate void EventMeasureValue(string value);

private void btnMeasure_Click(object sender, System.EventArgs e)
        {
            Thread thread = new Thread(new ThreadStart(measure));
            thread.Start();                                                                        
        }

private void addMeasure(string value) 
        {
            TextBoxMeasureValue.Text = value;
        }
private void measure()
        {
            // Die Schleife Simuliert mein Messgerät
            for (int i = 0; i <8200; i++)
            {
                Invoke(new EventMeasureValue(addMeasure), new Object[] { i.ToString() }); 
                Thread.Sleep(100);
            }
        }

Auf diese weis funktioniert es jetzt bei mir. Ob es aber der Perfekte weg ist, kann ich noch nicht sagen. ;)

Danke für die Tipps.
 
Zurück