@Dksksm & @VaporiZed
Moin moin
Also ich hatte es soweit hinbekommen, das die beiden Threads gleichzeitig laufen und auch das tun was ich mir so gedacht hatte.
Nun wollte ich diese "Routinen" einbauen um etwaige Fehler wie z.B. abziehen des USB-Sticks oder was auch immer passieren kann, abzufangen.
Nach Umbau bekomme ich angezeigt:
Wie kann ich das lösen? Danke
Spoiler anzeigen
Moin moin
Also ich hatte es soweit hinbekommen, das die beiden Threads gleichzeitig laufen und auch das tun was ich mir so gedacht hatte.
Nun wollte ich diese "Routinen" einbauen um etwaige Fehler wie z.B. abziehen des USB-Sticks oder was auch immer passieren kann, abzufangen.
Nach Umbau bekomme ich angezeigt:
Fehler 1 Der =-Operator ist für die Typen "System.Threading.Tasks.Task(Of Boolean)" und "Boolean" nicht definiert.
Warnung 4 Da auf diesen Aufruf nicht gewartet wird, wird die Ausführung der aktuellen Methode vor Abschluss des Aufrufs fortgesetzt. Ziehen Sie ein Anwenden des 'Await'-Operators auf das Ergebnis des Aufrufs in Betracht
Wie kann ich das lösen? Danke
VB.NET-Quellcode
- Private Sub btn_copy_Click(sender As Object, e As EventArgs) Handles btn_copy.Click
- If btn_copy.DialogResult = Windows.Forms.DialogResult.OK Then
- Dim result1 As Boolean = String.IsNullOrWhiteSpace(tb_name.Text)
- If result1 = True Then
- lbl_error.Visible = True
- lbl_error.Text = "Feld Name kann nicht leer sein."
- End If
- Threadsstarten()
- End If
- End Sub
- Private Sub Threadsstarten()
- If zippeAsync() = True OrElse kopiereAsync() = True Then '<======= Hier steht die Fehlermeldung
- anzeigen(0, 0)
- lbltest.Text = CStr(Klass.x)
- lbltest2.Text = CStr(Klass.y)
- zippeAsync() '<=============2ter Fehler
- kopiereAsync()
- anzeigen(1, 1)
- 'MessageBox.Show("Die Daten wurden kopiert.")
- Else
- anzeigen(2, 2)
- 'MessageBox.Show("Ein Fehler trat auf, Daten wurden nicht kopiert.")
- End If
- End Sub
- Private Async Function zippeAsync() As Task(Of Boolean)
- Try
- Await Threading.Tasks.Task.Run(Sub() zippen())
- Klass.x = 1
- anzeigen(Klass.x, 0)
- Return True
- Catch ex As Exception
- Return False
- End Try
- End Function
- Private Async Function kopiereAsync() As Task(Of Boolean)
- Try
- Await Threading.Tasks.Task.Run(Sub() kopieren())
- Klass.y = 1
- anzeigen(Klass.y, 0)
- Return True
- Catch ex As Exception
- Return False
- End Try
- End Function
- Private Sub zippen()
- IO.Directory.CreateDirectory(Klass.HDD2temp)
- ZipFile.CreateFromDirectory(Klass.Source, Klass.HDD2temp & ".zip", CompressionLevel.Optimal, False)
- IO.Directory.Delete(Klass.HDD2temp)
- End Sub
- Private Sub kopieren()
- My.Computer.FileSystem.CopyDirectory(Klass.Source, Klass.HDD1temp)
- End Sub
- Private Sub anzeigen(ByVal x As Integer, ByVal y As Integer)
- If Klass.x = 1 Then
- lbltest.Text = "Zippen ist fertig"
- ElseIf Klass.y = 1 Then
- lbltest2.Text = "Kopieren ist fertig"
- End If
- If Klass.x = 1 And Klass.y = 1 Then
- tb_name.Enabled = True
- tb_name.Focus()
- btn_copy.Visible = True
- PictureBox1.Visible = False
- Else
- tb_name.Enabled = False
- btn_copy.Visible = False
- PictureBox1.Visible = True
- End If
- If Klass.x = 2 And Klass.y = 2 Then
- lbltest.Text = "Es trat ein Fehler auf"
- lbltest2.Text = "Es trat ein Fehler auf"
- End If
- End Sub
Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen.