Guten Morgen allerseits
ich hab ein kleines Problem, es scheint, als würde mein UI nicht upgdatet, also das ist meine Vermutung, es kann aber auch was Anderes sein.
Ich versuche, einen Downloadfortschritt mit einer ProgressBar anzuzeigen (bzw. einer TextBox), die Methode
Hier mein Code, wie man sieht, hab ich schon versucht, dem Problem mit .Invoke in Kombination mit asynchronen Methoden zu Leibe zu rücken, aber bei dem Thema bin ich mir noch bisschen unsicher:
ich hab ein kleines Problem, es scheint, als würde mein UI nicht upgdatet, also das ist meine Vermutung, es kann aber auch was Anderes sein.
Ich versuche, einen Downloadfortschritt mit einer ProgressBar anzuzeigen (bzw. einer TextBox), die Methode
DoAny
hab ich bloss zu Testzwecken, sie soll dann ersetzt werden...Leider zeigt mir die TextBox nichts an...Hier mein Code, wie man sieht, hab ich schon versucht, dem Problem mit .Invoke in Kombination mit asynchronen Methoden zu Leibe zu rücken, aber bei dem Thema bin ich mir noch bisschen unsicher:
VB.NET-Quellcode
- Public Class Form1
- Private MeinDispatcher As Dispatcher
- Private FortSchritt As IProgress(Of String)
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- MeinDispatcher = Dispatcher.CurrentDispatcher
- End Sub
- Private Sub btnInstall_Click(sender As Object, e As EventArgs) Handles btnInstall.Click
- MeinDispatcher.Invoke(Sub() FortSchritt = New Progress(Of String)(Function(s) (TextBox1.Text, s)))
- DoAny(FortSchritt).GetAwaiter.GetResult()
- MessageBox.Show("fertig")
- End Sub
- Private Async Function DoAny(p As IProgress(Of String)) As Task(Of Boolean)
- Dim x As Integer = 0
- For i = 1 To 500000000
- If i Mod 10000 = 0 Then
- MeinDispatcher.Invoke(Sub() p.Report(x.ToString))
- End If
- x += 1
- Next
- Return True
- End Function