Я использую библиотеку GMAP.Net для приложения окна отображения. У меня около 17000 полигонов в моей базе данных Sql Server. В событии load формы я выбираю All polygons из базы данных и заполняет datatabale, а затем вытягивает полигоны один за другим из datatable. У меня также есть древовидная структура, в которую я добавляю все имена полигонов 17000 в это дерево. Теперь, когда я проверяю выбрать все флажки на TreeView вызвать функцию в Treeview node_AfterCheck случае, как это:Оптимизация вложенных циклов
Private Sub node_AfterCheck(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterCheck
If e.Action <> TreeViewAction.Unknown Then
Task.Factory.StartNew(Sub()
GetPolygons(e.Node)
End Sub, TaskCreationOptions.LongRunning)
End If
End Sub
Private Sub GetPolygons(node As TreeNode)
Dim objectId As String
Dim _polygon As GMapPolygon
For Each node1 As TreeNode In node.Nodes
objectId = node1.Name
For Each _polygon In polyOverlay.Polygons.AsParallel
itemTag = _polygon.Tag.ToString.Split("|")
If itemTag (0) = node1.Name Then
_polygon.IsVisible = node.Checked
Exit For
End If
Next
Next
End sub
этот код занимает около 40 секунд для запуска полностью. Есть ли способ оптимизировать этот код для более короткого времени?
Также есть некоторые проблемы с порядком 'End If' и' Exit For'. – rdoubleui