1

我试图找出一种方法来加载一个非常大的 .txt 文件,并认为如果我将它分成几个部分(列表框),它会加载得更快,并且更容易操作且延迟更少。或者有没有办法与后台工作人员一起进行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 行,然后是 Next 列表框等。也许 if not 语句中存在某种形式的 items.count?我的思绪在转圈,请把我对准最好的方向。我的文件是 25.MB 并且增长缓慢。Notepad++ 是唯一能很好地处理它的 ATM。

     ListBox1.Items.Add(lines(1 - 10000))

引发错误(“外部数组索引或类似”)

       ListBox1.Items.Add(lines(10000))

加载单行

4

1 回答 1

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)
于 2017-04-18T17:04:10.030 回答