Entwickler-Ecke
Sonstiges (.NET) - Mehrere Prozesse parallel
GURKE deluxe - Fr 01.10.10 15:43
Titel: Mehrere Prozesse parallel
Hallo,
Ich habe ein Programm geschrieben welches eventuell mehrere Minuten braucht. Wenn dieser Prozess nun am laufen ist, kann ich mit dem Programm nichts anderes mehr machen.
Gibt es die Möglichkeit, den Fortschritt anzeigen zu lassen? Und kann man die Oberfläche getrennt berechnen lassen, das man diese u.a. noch bewegen, normal schließen, etc. kann?
Gruß
GURKE
GURKE deluxe - Fr 01.10.10 22:32
Moin Th69,
Danke für deine Antwort! Habe mir Teile durchgelesen. Und auch ein kleines Testprogramm geschrieben:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| private void button2_Click(object sender, EventArgs e) { new Thread(TestDauerläufer).Start(); } private void TestDauerläufer() { for (int i = 0; i < 100000; i++) { for (int k = 0; k < 1000000; k++) { int[] ABC = new int[10000]; } this.Invoke(new MethodInvoker(DoCheapGuiAccess)); } } private void DoCheapGuiAccess() { progressBar1.Value = progressBar1.Value + 1; } |
Funktioniert tatsächlich alles so wie es soll! Danke nochmals!
Gruß
GURKE
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
GURKE deluxe - Sa 02.10.10 09:28
So, ich bins nochmal.
Ich habe nun ein Problem mit dem Code:
Mein kompletter Zeitfressender Code steht nun im Bereich wo hier die beiden Schleifen stehen. Dieser Code braucht einige Informationen von der Oberfläche. Wenn ich den Code starte kommt der Fehler der schon beschrieben wurde ("Unzulässiger threadübergreifender Vorgang" bzw. "Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement 'Name des Steuerelements' erfolgte nicht von dem Thread aus, in dem das Steuerelement erstellt wurde." (*)).
Wie komme ich nun an Daten der Oberfläche?
Gruß
GURKE
Delete - Sa 02.10.10 12:08
Übergebe sie an den Thread, bevor du ihn startest.
Kha - Sa 02.10.10 22:35
Und zwar über die Überladungen des Thread-Konstruktors und Start, über die du ein Objekt übergeben kannst :) . Über anonyme Methoden ging es auch noch einfacher.
GURKE deluxe - So 10.10.10 19:41
So lange arbeite ich nocht nicht mit C# ;)
Also was soll ich jetzt genau machen? Am besten mit Beispiele :D.
Delete - So 10.10.10 19:48
Thread-Tutorials sollte es eigentlich genug im Internet geben.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!