Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 23:06

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Backgroundworker mehrere Parameter

Discussion on Backgroundworker mehrere Parameter within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 4
Join Date: Dec 2010
Posts: 4,733
Received Thanks: 3,870
Backgroundworker mehrere Parameter

Hallo Leute,

ich hänge grade verzweifelt an einem Problem fest.

Ich habe einen Backgroundworker in mein Tool implementiert, nun soll der eine Schleife durchlaufen. In dieser Schleife müsste er auf zwei Textboxen zugreifen, jedoch geht das ja nicht, da es in einem anderen Thread läuft.

Ich habe etliche Möglichkeiten gelesen/versucht doch keine will klappen. Man kann leider nur in der Zeile ein Argument einfügen, wenn ich zwei Argumente mit einem "&" verbinde, klappt es auch nicht.

Code:
BackgroundWorker1.RunWorkerAsync()
Hoffe mir kann hier jemand helfen.
Wurzelhüpfer is offline  
Old 06/02/2013, 20:28   #2
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Es gibt doch die Events vom Backgroundworker, auf die du vom GUI-Thread reagieren kannst. Ich hab schon ewig nichtmehr mit .NET gearbeitet und weiß gerade auch garnicht, wie diese Events heißen, aber msdn wird dir da sicherlich helfen.
Schlüsselbein is offline  
Old 06/02/2013, 20:37   #3
 
elite*gold: 4
Join Date: Dec 2010
Posts: 4,733
Received Thanks: 3,870
Das ProgressChanged Sub, aber das ist ja ein extra Sub, nicht wie das "DoWork" Sub, somit kann ich ja darauf nicht zugreifen ._.
Wurzelhüpfer is offline  
Old 06/02/2013, 20:49   #4
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Du emittierst das Event in der DoWork-"Sub" und packst dein Zeug für die GUI in ProgressChanged rein. Dem Event kannst du sicherlich auch noch ein Parameter übergeben. Das kann dann je nach Komplexität ein einfacher Wert sein oder ein Objekt, welches alle Informationen für die GUI besitzt.
Schlüsselbein is offline  
Old 06/02/2013, 21:01   #5
 
reCougar's Avatar
 
elite*gold: 1
Join Date: Jan 2013
Posts: 372
Received Thanks: 99
Versuch es mit Delegate und Invoke
reCougar is offline  
Old 06/02/2013, 21:03   #6
 
elite*gold: 4
Join Date: Dec 2010
Posts: 4,733
Received Thanks: 3,870
Also ich probier es mal so zu erklären:

Code:
 Private Sub btn_start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_start.Click

        BackgroundWorker1.RunWorkerAsync()

    End Sub
Code:
Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork

For Each line In IO.File.ReadLines(TextBox1.Text) ' <- Wert wird nicht aus dem GUI genommen.

End Sub
Und das Problem dann mit der 2. Textbox, es funktioniert einfach nicht, wenn ich den BGW Starte, kommt direkt die Finishmeldung...
Wurzelhüpfer is offline  
Old 06/02/2013, 21:28   #7
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Les den Inhalt der Textbox im GUI-Thread aus und lass den Worker dann mit den Daten arbeiten.
Schlüsselbein is offline  
Old 06/02/2013, 21:33   #8
 
elite*gold: 4
Join Date: Dec 2010
Posts: 4,733
Received Thanks: 3,870
Quote:
Originally Posted by Schlüsselbein View Post
Les den Inhalt der Textbox im GUI-Thread aus und lass den Worker dann mit den Daten arbeiten.
Und wie soll das denn funktionieren? Der Gui-Thread ist der "ProgressChanged-Sub" wie soll der denn vor dem "DoWork-Sub" ausgeführt werden?

Quote:
Originally Posted by reCougar View Post
Versuch es mit Delegate und Invoke
Hast du vielleicht ein Beispiel für mich oder ein Tut?
Wurzelhüpfer is offline  
Old 06/02/2013, 21:52   #9
 
reCougar's Avatar
 
elite*gold: 1
Join Date: Jan 2013
Posts: 372
Received Thanks: 99
Quote:
Originally Posted by Wurzelhüpfer View Post
Und wie soll das denn funktionieren? Der Gui-Thread ist der "ProgressChanged-Sub" wie soll der denn vor dem "DoWork-Sub" ausgeführt werden?



Hast du vielleicht ein Beispiel für mich oder ein Tut?
Google ist dein Freund
reCougar is offline  
Old 06/02/2013, 22:21   #10
 
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208


Das dürfte sein was du suchst, musst die Daten dem Thread halt mitgeben.
dready is offline  
Old 06/02/2013, 23:08   #11
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Quote:
Und wie soll das denn funktionieren? Der Gui-Thread ist der "ProgressChanged-Sub" wie soll der denn vor dem "DoWork-Sub" ausgeführt werden?
Du startest den bgw ja irgendwie aus dem GUI Thread heraus. Les die Daten ein und starte dann den Thread.
Schlüsselbein is offline  
Reply


Similar Threads Similar Threads
[Help]Parameter
11/30/2012 - Flyff Private Server - 2 Replies
kann mir wer vlt eben helfen? diese resdata.inc einträge APP_MPLAYER "mp3.tga" 0 400 100 0x410000 21 { IDS_RESDATA_VN_000001 // Title String } { IDS_RESDATA_VN_000002 // Help Key
parameter
06/14/2012 - Flyff Private Server - 1 Replies
Hallo Andre sagt wenn ich alles von chaos in sod files mache mussman paramter ändern ich wieß aber nicht wo man dass macht
Parameter
12/11/2010 - AutoIt - 5 Replies
wie mache ich ein parameter in autoit?
C# Keysend und Backgroundworker
03/08/2010 - .NET Languages - 3 Replies
Hi hab da ein Problem. Kann es sein das der Befehl SendKeys innerhalb eines Backroundworkers nicht ausgeführt werden kann bzw der Befehl nicht an das aktive fenster sondern an den mainthread geschickt werden???? Bzw hat jemand eine Lösung wie man das umgehen kann das SendKeys an das richtige Fenster die Tastenanschläge schick??? EDIT: Der Code der dananch ausgeführt werden soll wird auch nicht ausgeführt. while (Run1.Break == false)
Backgroundworker Daten von Form holen
11/15/2007 - General Coding - 4 Replies
Nabend allerseits, ich arbeite im Moment an einer Scriptengine, die schon beinah fertig ist. Ich möchte, dass die Scriptinterpretation in einem 2. Backgroundthread abläuft. Soweit so gut, klappt alles bis auf das Problem, dass ich nicht weiss, wie ein zweiter Thread Daten von der Form holen kann ( Es wird diese typische Exception geworfen). Wäre nett, wenn mir das einer halbwegs idiotensicher darlegen könnte, da ich erst seit einer Woche intensiv in C# programmiere und der Text der Helpfile...



All times are GMT +1. The time now is 23:07.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.