Hallo Forum,
ich habe ein kleines Designproblem und hoffe auf eure Hilfe. Vielleicht gehe ich es auch ganz falsch an und ihr habt eine bessere Idee?
Ein
Programm soll Dateien berechnen. Pro Datei kann diese Berechnung schon
einige Minuten dauern. Allerdings müssen nicht alle Dateien unbedingt
berechnet werden. Daher soll dieses der User auswählen und ggf. auch
Einstellungen ändern, bevor die Berechnung gestartet wird.
In
einem Datagridview werden pro Datei eine neue Zeile eingefügt. In den
einzelnen Spalten befinden sich Informationen zur Datei und dann auch
ein "Berechnungs"-button.
Die Berechnung soll nun in einem extra
Thread berechnet werden. Die Ergebnisse der Berechnung stehen in einem
anderen DGV. In diesem sollen die Ergebnisse ausgegeben werden, sobald
diese berechnet sind.
Wie mache ich dieses aus dem Thread heraus oder erstelle ich mir lieber einen Timer, der das DGV updatet?
In dieser Classe stehen alle Notwenidigen Daten für die Datei - Dateiname und Ort, Einstellungen und Ergebnisse.
Das ganze wird in einem List(of) Array gespeichert.
Nun will ich ein weiteres Array erstellen, das einen Thread pro Datei bereitstellt.
Allerdings
bekomme ich mit der Thread zuweisung im List(of) ne Fehlermeldung, die
ich leider nicht deuten kann. Was ist daran falsch? Irgendwie finde ich
nur Beispiele, die sehr viel einfacher sind. Dafür funktioneren sie,
auch wenn ich es genauso mache... Meine ich jedenfalls.
Hier die Berechnungs-"Thread"-Klasse
Ne Frage hab ich auch noch:
Funktioniert
die Datenzuweisung mit der "ByRef" Deklaration in der "Thread"-Klasse?
Greift der Thread auf die geänderten Start- und Stop-Werte zurück
Vielen Dank im Voraus
Liebe Grüße
Tukuan
ich habe ein kleines Designproblem und hoffe auf eure Hilfe. Vielleicht gehe ich es auch ganz falsch an und ihr habt eine bessere Idee?
Ein
Programm soll Dateien berechnen. Pro Datei kann diese Berechnung schon
einige Minuten dauern. Allerdings müssen nicht alle Dateien unbedingt
berechnet werden. Daher soll dieses der User auswählen und ggf. auch
Einstellungen ändern, bevor die Berechnung gestartet wird.
In
einem Datagridview werden pro Datei eine neue Zeile eingefügt. In den
einzelnen Spalten befinden sich Informationen zur Datei und dann auch
ein "Berechnungs"-button.
Die Berechnung soll nun in einem extra
Thread berechnet werden. Die Ergebnisse der Berechnung stehen in einem
anderen DGV. In diesem sollen die Ergebnisse ausgegeben werden, sobald
diese berechnet sind.
Wie mache ich dieses aus dem Thread heraus oder erstelle ich mir lieber einen Timer, der das DGV updatet?
In dieser Classe stehen alle Notwenidigen Daten für die Datei - Dateiname und Ort, Einstellungen und Ergebnisse.
VB.NET-Quellcode
- Public Class FileDataSet
- Public sFileName As String
- Public sFullFileName As String 'with folder
- Public nCalculatedState As Integer '0 = Not calculated, 1 = is calculating, 2 = is calculated
- Public bUsedForAveCalc As Boolean
- Public bUsedAsDiagramMaster As Boolean
- Public dK_u_Values(3) As Double
- Public dK_f_Values(3) As Double
- Public dStartValue As Double
- Public dStopValue As Double
- Public Sub New()
- sFileName = ""
- sFullFileName = ""
- nCalculatedState = 0
- bUsedAsDiagramMaster = False
- bUsedForAveCalc = False
- For i = 0 To dK_f_Values.Length - 1
- dK_f_Values(i) = i
- Next
- For i = 0 To dK_u_Values.Length - 1
- dK_u_Values(i) = i
- Next
- dStartValue = 0
- dStopValue = 0
- End Sub
- End Class
Das ganze wird in einem List(of) Array gespeichert.
Nun will ich ein weiteres Array erstellen, das einen Thread pro Datei bereitstellt.
Allerdings
bekomme ich mit der Thread zuweisung im List(of) ne Fehlermeldung, die
ich leider nicht deuten kann. Was ist daran falsch? Irgendwie finde ich
nur Beispiele, die sehr viel einfacher sind. Dafür funktioneren sie,
auch wenn ich es genauso mache... Meine ich jedenfalls.
Hier die Berechnungs-"Thread"-Klasse
VB.NET-Quellcode
- Class cls_SwitchCalc
- Private oFileDataSet As frmSwitchings.FileDataSet
- Public Sub New(ByRef oFDS As frmSwitchings.FileDataSet)
- oFileDataSet = oFDS
- End Sub
- Public Sub CalculateFile()
- 'mach was mit den Daten und speicher die Ergebnisse in oFileDataSet
- oFileDataSet.dK_f_Values(0) = 1
- 'usw.
- End Sub
- End Class
Ne Frage hab ich auch noch:
Funktioniert
die Datenzuweisung mit der "ByRef" Deklaration in der "Thread"-Klasse?
Greift der Thread auf die geänderten Start- und Stop-Werte zurück
Vielen Dank im Voraus
Liebe Grüße
Tukuan