ERLEDIGT
JA
JA
ANTWORTEN
12
12
ZUGRIFFE
2612
2612
EMPFEHLEN
-
Hallo zusammen,
und weiter gehts mit einem neuen Problem
Ich habe (immernoch) eine Art FTP Client an dem ich programmiere.
Für den Komfort habe ich gewisse Funktionen in eigene Threads ausgelagert(Connect, Login, Upload usw usw)
Des weiteren habe ich ein paar Events erstellt um eine gewisse Syncronisation reinzubringen.
Mein Problem nun:
Beispielszenario:
Thread B verbindet sich grade mit dem FTP Server. Wenn fertig tritt ein Event auf , sinnngemäß "Connection established"
Diese Info möchte ich zurück an Thread A übermitteln (das is der hauptthread von dort wurde Thread B erschaffen)
Im Thread A möchte ich eine Statustextbox mit dieser Info updaten.
Nun meckerts aber, weil ich angeblich:
Kann mir bitte wer sagen, wie man sowas auf elegantem Wege macht?Cross-thread operation not valid: Control 'StatusTextbox' accessed from a thread other than the thread it was created on.
Danke!
Gruß
FrankNürnberg ist die geheime Welthaupstadt der Musik, das weiss nur noch keiner :-)
-
Hi,
Invoke ist das Stichwort, wonach du suchst.
Über Delegates kannst du Thread-übergreifend kommunizieren.
Beispiele dazu findest du in der MSDN
Sorry, hab nicht viel Zeit, aber jetzt weißt du, wonach du suchen musst.Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
29.11.06 09:57 #3
Um Domain oder Context übergreifend arbeiten zu können würde sich auch die Remoting Technologie anbieten.
Geändert von Nil18 (29.11.06 um 10:02 Uhr)
Liebe Grüße, Nil
Die Summe des eingesetzten Know-hows beim Programmieren ist indirekt proportional zu der Zahl der für den Anwender verständlichen Funktionen.
-
Ich glaub Du hast grad das Thema verfehlt. *g*
Es geht um Threads und nicht um Domains.
@ThreadStarter: Schau dich mal in dem folgenden Thema um.
AW: Probleme beim neuzeichnen von pictureBox - Post (Beispielprogramm)
Darin findest ein Beispiel mittels Delegates ereignissgesteuert mit unterschiedlichen Threads zu kommunizieren.
Definier einen Delegate danach ein Event mit dem Deleagte als Handler und schon hast was Du brauchst.
In diesen Thread findest alles weitere zum Thema und Techniken merere Threads zu verwalten.
Musst Dich aber durchklicken um an alle Infos zu kommen.
Thread Hilfe, wie beenden? - ThreadMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
29.11.06 13:05 #5
Habe den Post vor Deiner Antwort editiert cosmo.
Ein Thread bildet meines Wissens nach einen eigenen, geschlossenen Context. Man kann also von keinem Thread aus auf Variablen eines anderen Threads zugreifen.
Und für genau das Prob. war meine Lösung gedacht.
Falls es trotzdem eine Verfehlung des Themas is oder meine Antwort einfach falsch, dann bitte um Entschuldigung
Geändert von Nil18 (29.11.06 um 13:19 Uhr)
Liebe Grüße, Nil
Die Summe des eingesetzten Know-hows beim Programmieren ist indirekt proportional zu der Zahl der für den Anwender verständlichen Funktionen.
-
Naja, ich weiss immer noch nicht was Remoting damit zu tun hätte.

Mann kann sehr wohl auf Variablen in anderen Threads zugreifen.
Nur sieht es bei Controls schlecht aus, da sie ihrer visuellen Beschaffenheit wegen
nur von einem Thread verändert werden dürfen, damit das Eventhandling nicht durcheinander kommt
und auch keine Deathlocks enstehen.
Bei normalen Objekten kann es auch dazu kommen,
sofern 2 Objekte geichzeitig darauf zugreifen. Weiterhin kann es auch auch zu Inkonsistenzen der Daten kommen...
Um dem vorzubeugen hat man aber ein paar sehr mächtige Werkzeuge zu Verfügung.- Das volatile Schlüsselwort, welches einen synchronisierten Zugriff lediglich für eine einzelnes Objekt ermöglicht.
Dieses Schlüsselwort kann zB in einer Singleton-Implemenation verwendet werden.
- Für Codeanbschitte die Monitor.Enter & Monitor.Exit Methoden.
Equivalent dazu das lock SchlüsselwortCode csharp:1 2 3
Monitor.Enter( syncRootObj ); // synchronized access goes here Monitor.Exit( syncRootObj );
Code csharp:1 2 3
lock ( syncRootObj ) { // synchronized access goes here }
- Um ganze ganze Methoden zu Synchronisieren hat man sogar das Attribut MethodImplAttribute zu Verfügung.
Code csharp:1 2 3 4 5
[MethodImpl(MethodImplOptions.Synchronized) void SynchronizedMethod() { // synchronized access goes here }
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
- Das volatile Schlüsselwort, welches einen synchronisierten Zugriff lediglich für eine einzelnes Objekt ermöglicht.
-
29.11.06 15:00 #7
Hm ich halte besser meine Klappe wenn ich mir bei meinen Antworten nicht mal selbst sicher bin

Naja, bin selber erst Anfänger und bei weitem nicht so professionell unterwegs wie du
Sorry für den sinnlos Post.
PS: Keine Sorge, das soll kein "kindisch-eingeschnapptes Verhalten" sein, sondern die Realität...Liebe Grüße, Nil
Die Summe des eingesetzten Know-hows beim Programmieren ist indirekt proportional zu der Zahl der für den Anwender verständlichen Funktionen.
-
NP. Dein Posting war lediglich ein Ansporn das jetzt mal genauer zu erkären.

Ich hab grad angefangen ein Tutorial dazu zu schreiben,
darin werde ich auch mit Beispielen erläutern,
wie man thread-übergeifend auf Controls und deren Eigenschaften zugreifen kann,
was ja in meinem Posting noch gefehlt hat und man sich schlecht als Anfänger
aus den von mir weiter oben geposteten Links entnehmen kann, wie ich grad fest gestellt hab.
Werde dann den Link hier posten, ok.
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
29.11.06 15:20 #9
[
]
Sag mal cosmo, wieviel Zeit hast Du eigentlich?
Den ganzen Tag hier im Forum und nebenbei noch Tutorials schreiben *gg*
[/
]
Eben das meinte ich mit meiner Aussage, ich weiß einfach noch zu wenig um es auch wirklich begründen zu können.
Habe nur das weiter gegeben was mit erklärt wurde.
Eben das Remoting u.a. dazu gut ist, um beispielsweise AppDomain übergreifend arbeiten zu können. Und angeblich hat ein Thread eben auch eine eigene gültigkeits Domain. Aber naja, konkrete Beispiele dazu kann ich nicht liefern, da ich mich selbst erst gerade in diese ganze Thematik einarbeite...
Nunja... was solls ... Selbstmitleid hilft nicht
Werd mal zurück an die Arbeit gehn.Liebe Grüße, Nil
Die Summe des eingesetzten Know-hows beim Programmieren ist indirekt proportional zu der Zahl der für den Anwender verständlichen Funktionen.
-
Das Tut werde ich auch erst heute abend schreiben.
Du musst das was falsch verstanden haben, oder Dir hat irgend ein Berufsschullehrer
igend welchen Mist, wie so oft aus meiner Erfahrung, erzählt.
Gedult, Gedult. Das Tut kommt schon noch.
Und zum Thema Remoting:
Remoting - Verständisproblem - Thread
Server Client Anwendung - Thread
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
So, wie angekündigt hab ich nun mein Tutorial zum Thema veröffentlicht.
Multi-Threading - Teil1: Einführung - Tutorial
Teil 2: Windows Forms folgt dann nächste Woche.
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Moin Jungs =)
Danke nochmal.. hab grad zufaellig nochmal reingeguggt.
Meine Lösung (wie niggo es vorgeschlagen hat) war dann:
InvokeRequired prüfen und ggf einen Callback auf einen vorher angelegten Delegate machen. Dann gings
Bin schon auf den zweiten Teil des Tuts gespannt
Gruß
FrankNürnberg ist die geheime Welthaupstadt der Musik, das weiss nur noch keiner :-)
-
Hat Dir der erst Teil also gefallen.
Zitat von BeaTBoxX

Nungut, verrate mir doch mal bitte wo Du denn generell so Verständnissprobleme hast und was Dich besonders interessiert, damit ich den Inhalt des 2. Teils vielleicht noch gehaltvoller gestalten kann.
Ich hab auch schon eine Idee für einen 3. Teil. Ein Beispielprogramm was die Inhalte der ersten 2 Teile anhand von pratischen Beispielen demonstriert.
Das Beispielprogramm ist schon fertig, würde es nur nochmal überarbeiten und erweitern wollen. AW: Probleme beim neuzeichnen von pictureBox - ThreadGeändert von Christian Kusmanow (13.12.06 um 11:55 Uhr)
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
Ähnliche Themen
-
Thread
Von Bobiq im Forum JavaAntworten: 2Letzter Beitrag: 01.05.09, 23:52 -
Thread
Von xXchrissiXx im Forum JavaAntworten: 12Letzter Beitrag: 22.05.07, 16:27 -
VB.NET Thread und GUI
Von Peter Parker im Forum .NET ArchivAntworten: 1Letzter Beitrag: 16.06.05, 10:25 -
VB.NET Thread und XML
Von Peter Parker im Forum .NET ArchivAntworten: 1Letzter Beitrag: 08.06.05, 09:02 -
max - c4d (Thread split by IKEAFREAX on 09.07.2002 23:43 (thread by pasq))
Von pasq im Forum 3D Studio MaxAntworten: 19Letzter Beitrag: 12.07.02, 11:13





Zitieren


Login





