Hallo,
ich bin seit langem auf der suche nach einer einfachen und nicht all zu komplexen Programmierspache mit der ich mir schnell einige Tool schreiben kann um z.B. meine µC zu steuern. z.B. per RS232. Was dann wieder per Funk an alle Controller weitergeleitet wird.
Lange habe ich gesucht und bin auf C# bzw. WPF gestoßen. Da mir auch die leichte erstellung einer GUI wichtig war. Nun habe ich es geschafft und gefunden und schreibe gerade ein Tool mit dem ich einfach per RS232 Daten senden und Empfangen kann. Dazu will ich meinen COM1 Brücken so dass alles gesendete auch das empfangene ist ^^
Klappt irgendwie schon, jedoch soll er die ganze Zeit schauen ob etwas empfangen wurde und da hackts. Dazu brauche ich ja einen Thread welchen ich auch erstellt habe und dieser Führt eine Funktion aus die dann eine Endlosschleife mit abbruchvariable hat.
Klappt soweit auch ^^
Nun versuche ich jedoch auf ein Objekt zuzugreifen in dem dann die Daten ausgegeben werden soll die Empfangen wurden. Und da bekomme ich diese Fehlermeldung von Visual Studio 2010 Express:
"Der aufrufende Thread kann nicht auf dieses Objekt zugreifen, da sich das Objekt im Besitz eines anderen Threads befindet."
Irgendwie muss ich dieses Objekt doch in "meinen" Besitz bekommen können.
Ich habe schon viel gesehen mit Dispatcher und Invoke und und und. Jedoch verstehe ich die nicht und meist funktionieren die nicht weil teilweise einfach sachen davon für das Framework 3 sind und im 4 scheinbar nicht mehr vorhanden sind.
Also, vielleicht hat mal jemand eine Idee.
Natürlich hier noch Quellcode ausschnitte. Wenn die nicht reichen schicke ich auch alles aber ihr müsst euch ja nicht unnötig durch alles durchquälen.
Button gedrückt und der Thread wird gestartet
Der Thread:
Die Abfrage habe ich schon mal hinbekommen aber wie kann ich nun das objekt empf_klar (Lableobjekt) ansprechen?
ich danke euch!
ich bin seit langem auf der suche nach einer einfachen und nicht all zu komplexen Programmierspache mit der ich mir schnell einige Tool schreiben kann um z.B. meine µC zu steuern. z.B. per RS232. Was dann wieder per Funk an alle Controller weitergeleitet wird.
Lange habe ich gesucht und bin auf C# bzw. WPF gestoßen. Da mir auch die leichte erstellung einer GUI wichtig war. Nun habe ich es geschafft und gefunden und schreibe gerade ein Tool mit dem ich einfach per RS232 Daten senden und Empfangen kann. Dazu will ich meinen COM1 Brücken so dass alles gesendete auch das empfangene ist ^^
Klappt irgendwie schon, jedoch soll er die ganze Zeit schauen ob etwas empfangen wurde und da hackts. Dazu brauche ich ja einen Thread welchen ich auch erstellt habe und dieser Führt eine Funktion aus die dann eine Endlosschleife mit abbruchvariable hat.
Klappt soweit auch ^^
Nun versuche ich jedoch auf ein Objekt zuzugreifen in dem dann die Daten ausgegeben werden soll die Empfangen wurden. Und da bekomme ich diese Fehlermeldung von Visual Studio 2010 Express:
"Der aufrufende Thread kann nicht auf dieses Objekt zugreifen, da sich das Objekt im Besitz eines anderen Threads befindet."
Irgendwie muss ich dieses Objekt doch in "meinen" Besitz bekommen können.
Ich habe schon viel gesehen mit Dispatcher und Invoke und und und. Jedoch verstehe ich die nicht und meist funktionieren die nicht weil teilweise einfach sachen davon für das Framework 3 sind und im 4 scheinbar nicht mehr vorhanden sind.
Also, vielleicht hat mal jemand eine Idee.
Natürlich hier noch Quellcode ausschnitte. Wenn die nicht reichen schicke ich auch alles aber ihr müsst euch ja nicht unnötig durch alles durchquälen.
Button gedrückt und der Thread wird gestartet
Code:
Thread t1 = new Thread(empfangen);
t1.Name = "Empf";
t1.Priority = ThreadPriority.Normal;
t1.Start();
Der Thread:
Code:
private void empfangen()
{
while (connection)
{
if (empf_klar.Dispatcher.CheckAccess())
{
empf_klar.Text += "Test\n";
}
else
{
}
}
}
ich danke euch!