Moin Moin schon wieder...
habe einen Async Task laufen, der wiederum Dateien kopiert.
Wie breche ich einen Async Task ab?
Habe bei MSDN folgende Zeile gefunden, jedoch funktioniert das so nicht...
Problem ist meine Schleife, zumindest gehe ich davon aus...
MSN Codezeile:
Meine Kopierfunktion:
Mein Button-Event mit Async:
Wäre es ratsam hierfür die For Each Schleife in die Funktion zu setzen?
Danke und Grüße,
Stefan
habe einen Async Task laufen, der wiederum Dateien kopiert.
Wie breche ich einen Async Task ab?
Habe bei MSDN folgende Zeile gefunden, jedoch funktioniert das so nicht...
Problem ist meine Schleife, zumindest gehe ich davon aus...
MSN Codezeile:
Meine Kopierfunktion:
VB.NET-Quellcode
- Private Function FileCopy(ByVal file_source As String, ByVal file_destination As String) As String
- Try
- If File.Exists(file_destination) Then
- Return "Datei " & file_destination & " bereits vorhanden"
- Else
- If Directory.Exists(IO.Path.GetDirectoryName(file_destination)) Then
- File.Copy(file_source, file_destination, False)
- 'Return "Kopiert: " & IO.Path.GetFileName(file_source)
- Return "Kopiert: " & file_source
- Else
- Directory.CreateDirectory(IO.Path.GetDirectoryName(file_destination))
- File.Copy(file_source, file_destination, False)
- 'Return "Kopiert: " & IO.Path.GetFileName(file_source)
- Return "Kopiert: " & file_source
- End If
- End If
- Catch
- 'Return "Datei " & IO.Path.GetFileName(file_source) & " nicht gefunden"
- Return "Datei " & file_source & " nicht gefunden"
- End Try
- End Function
Mein Button-Event mit Async:
VB.NET-Quellcode
- Private Async Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- Button1.Enabled = False
- Button2.Enabled = False
- Button3.Visible = False
- Button4.Enabled = False
- DateiToolStripMenuItem.Enabled = False
- Button5.Visible = True
- For Each line In IO.File.ReadLines(OFD_source.FileName)
- If line.Contains("BRIEFE\") Then
- Dim line2 As String = CStr(line)
- Dim lastline As String = line2.Remove(0, line2.IndexOf("BRIEFE\"))
- Dim source2 As String = FBD_quelle.SelectedPath + "\" + lastline
- Dim destination2 As String = destination + "\" + lastline
- Dim return_copy As String = Await Task.Run(Function() FileCopy(source2, destination2))
- TextBox1.AppendText(return_copy & Environment.NewLine)
- status = status + 1
- End If
- Dim prozent As String = CStr(CInt(status / summe_verweise * 100.0))
- ProgressBar1.Value = CInt(status)
- lbl_von.Text = CStr(status)
- lbl_prozent.Text = prozent & " %"
- Me.Update()
- Next
- End Sub
Wäre es ratsam hierfür die For Each Schleife in die Funktion zu setzen?
Danke und Grüße,
Stefan
Nein! Doch! OHH!