Hallo und frohe Ostern,
ich beschäftige mich gerade mit der Möglichkeit miteinander verschachtelte For/Next Schleifen über Multithreading (böse) oder Parallel.For (gut) zu beschleunigen, was aber bisher nicht geklappt hat.
Beispiel Pseudocode:
Spoiler anzeigen
Mein erster Versuch es mit Multithreading zu lösen war gescheitet. Dann wollte ich das über
Spoiler anzeigen
Jetzt stehe ich vor dem Problem, nicht zu verstehen, wie die i-Variable im MS Beispiel definiert wurde.
VS meckert das
Wer kann mir helfen?
ich beschäftige mich gerade mit der Möglichkeit miteinander verschachtelte For/Next Schleifen über Multithreading (böse) oder Parallel.For (gut) zu beschleunigen, was aber bisher nicht geklappt hat.
Beispiel Pseudocode:
VB.NET-Quellcode
Mein erster Versuch es mit Multithreading zu lösen war gescheitet. Dann wollte ich das über
Paralell.For
lösen, nach dem Beispiel von der MS Webseite. Über die Webseite converter.telerik.com/ den C# nach VB.net convertiert.VB.NET-Quellcode
- Imports System
- Imports System.Threading
- Imports System.Threading.Tasks
- Public Class Example
- Public Shared Sub Main()
- Dim rnd = New Random()
- Dim breakIndex As Integer = rnd.[Next](1, 11)
- Console.WriteLine($"Will call Break at iteration {breakIndex}\n")
- Dim result = Parallel.[For](1, 101, Sub(i, state)
- Console.WriteLine($"Beginning iteration {i}")
- Dim delay As Integer
- SyncLock rnd
- delay = rnd.[Next](1, 1001)
- End SyncLock
- Thread.Sleep(delay)
- If state.ShouldExitCurrentIteration Then
- If state.LowestBreakIteration < i Then Return
- End If
- If i = breakIndex Then
- Console.WriteLine($"Break in iteration {i}")
- state.Break()
- End If
- Console.WriteLine($"Completed iteration {i}")
- End Sub)
- If result.LowestBreakIteration.HasValue Then
- Console.WriteLine($"\nLowest Break Iteration: {result.LowestBreakIteration}")
- Else
- Console.WriteLine($"\nNo lowest break iteration.")
- End If
- End Sub
- End Class
- [/spoiler][spoiler]
Jetzt stehe ich vor dem Problem, nicht zu verstehen, wie die i-Variable im MS Beispiel definiert wurde.
Rückgabe01 = Parallel.[For](0, 15, Tuwas("",i1))
VS meckert das
i1
nicht definiert wurde. Verwende ich ein Dim i1 As Integer
wird nicht mehr über i1
geklagt, nun folgt diese Meldung Fehler BC30518 Fehler bei der Überladungsauflösung, da keine zugreifbare "[For]" mit diesen Argumenten aufgerufen werden kann
und ich komme im Verständnis nicht weiter. Wer kann mir helfen?
Aktuelles Projekt: Z80 Disassembler für Schneider/Amstrad CPC
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „oobdoo“ ()