我试图想出一种方法来加载一个非常大的.txt文件,并认为如果我把它分成几个部分(Listboxes)它会加载更快,更容易操作,滞后更少。或者有背景工作者的OFD方法吗? 这是我加载.txt的方式
TextBox1.Text = ""
OpenFileDialog1.Title = "Load File"
OpenFileDialog1.InitialDirectory = "C:temp"
OpenFileDialog1.ShowDialog()
Dim path As String = OpenFileDialog1.FileName
TextBox1.Text = path
Dim lines() As String = IO.File.ReadAllLines(TextBox1.Text)
我可以进入并用分隔符标记.txt的每1/4,如果这会有帮助吗? 我在想,如果我迭代XX数量的行然后下一个列表框等。也许某些形式的items.count在if not语句中?我的想法是围成一圈,请瞄准我最好的方向。我的文件是25.MB并且增长缓慢。 Notepad ++是处理ATM的唯一方法。
ListBox1.Items.Add(lines(1 - 10000))
抛出错误("外部数组索引或类似的")
ListBox1.Items.Add(lines(10000))
加载单行
答案 0 :(得分:0)
可能与此类似。这不是100%准确的代码。但是要给你一个想法。
Dim dt As New DataTable()
Dim lines As New List(Of [String])()
lines = New List(Of [String])(File.ReadLines(ofDialog.FileName))
Task.Run(Function()
Dim options As New ParallelOptions()
options.MaxDegreeOfParallelism = CInt(1)//Number of threads to spawn
Parallel.ForEach(lines, options, Function(line)
dt.Rows.Add()
End Function)
Me.Invoke(DirectCast(Sub() listview.DataSource = dt, MethodInvoker))
End Function)