Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mit C-Sharp aus Thread auf Methode zugreifen

Frage Entwicklung VB for Applications

Mitglied: LordGurke

LordGurke (Level 2) - Jetzt verbinden

11.07.2009, aktualisiert 14:52 Uhr, 4044 Aufrufe, 2 Kommentare

Hallo zusammen,

ich habe hier schon Bissspuren in meinem Schreibtisch, weil ich hier verzweifle:


In einem Background-Worker wird eine Verbindung zu einem Server hergestellt, die dauerhaft besteht und worüber erstmal nur Daten empfangen werden.
Beim Empfang von Daten soll dann eine Methode aufgerufen werden, die irgendwas mit den empfangenen Daten anstellt, in ein Dictionary schreibt und evtl. einer Listbox in der Form Daten hinzufügt.

Es geht solange alles gut, wie die Listbox in Ruhe gelassen wird. Dann schreit mich Visual Studio an, dass das nicht der gleiche Thread wäre und ich möge das doch bitte Threadsafe ausführen.
Prinzipiell keine schlechte Idee, hier kommt jetzt mein Problem:

Wie kann ich aus einem Thread heraus eine Methode mit Parametern aufrufen?
Ohne geht es ganz wunderbar mit einem neuen Thread, aber nutze ich ParameterizedThreadStart kann ich bloß ein Objekt übergeben und da stehe ich irgendwie wie der berühmte Ochs vorm Berg.

Bisher habe ich es so gelöst, dass ich ein globales Objekt erstellt habe, über das ich eine Methode aufrufe und vorher immer fleißig Variablen setzen muss, die dann in der aufgerufenen Methode genutzt werden können.
Das ist aber a) total Banane und b) muss es doch eine einfachere/elegantere/nutzbarere Möglichkeit geben?


Kann ich eventuell aus dem Background-Worker heraus ein Event auslösen, was der gesamte Prozess mitbekommt?
Dann würde ich ja eher das benutzen, aber da ich das noch nie gemacht habe und die Microsoft-Dokumentation eher wenig hilfreich ist wollte ich das jetzt nicht auf gut Dünken probieren.



Danke schonmal!

Max
Mitglied: Cubic83
11.07.2009 um 15:05 Uhr
Hallo,

das funktionniert mittels Delegaten (eng. delegate)-

Link MSDN

Da muss Du dich aber durchlesen. Ist ziemlich umfangreich.

mfG
Bitte warten ..
Mitglied: Supermax
12.07.2009 um 09:18 Uhr
Zumindest bei UI-Elementen (also Objekten die von Control abgeleitet sind), mußt du die Methode Invoke() bzw. BeginInvoke()/EndInvoke() verwenden, um aus einem anderen Thread auf diese Elemente zuzugreifen.
Bitte warten ..
Ähnliche Inhalte
C und C++
gelöst C-sharp Form buggt (2)

Frage von Yanmai zum Thema C und C ...

C und C++
C-sharp soll Datei von PHP speichern (3)

Frage von Yanmai zum Thema C und C ...

C und C++
gelöst C-Sharp Process.Start und SubProcesses (4)

Frage von mayho33 zum Thema C und C ...

C und C++
C-Sharp Variable Zuordnung (3)

Frage von Judo99 zum Thema C und C ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(8)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(27)

Information von SeaStorm zum Thema Utilities ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (18)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...