.net 在不使软件崩溃/冻结的情况下加载大文本文件

.net 在不使软件崩溃/冻结的情况下加载大文本文件,.net,vb.net,forms,text,.net,Vb.net,Forms,Text,首先,对不起,我的英语很差 我正在做我的.NET项目,我需要从我的服务器获取一个大文本到文本框。问题是,我的服务器文本文件在单个文件中大约有50000-100000行(约20mb-50mb),每次我尝试加载时,程序都会冻结,然后崩溃 Dim LargeText As String = "https://example.com/files/LargeText.txt" Dim reader As StreamReader = New StreamReader(client.Open

首先,对不起,我的英语很差

我正在做我的.NET项目,我需要从我的服务器获取一个大文本到文本框。问题是,我的服务器文本文件在单个文件中大约有50000-100000行(约20mb-50mb),每次我尝试加载时,程序都会冻结,然后崩溃

Dim LargeText As String = "https://example.com/files/LargeText.txt"        
Dim reader As StreamReader = New StreamReader(client.OpenRead(LargeText))
            TextBox1.Text = reader.ReadToEnd
这是我用来将文本读取到文本框的代码。
我想有一种方法可以在后台或其他地方加载它,我不知道。

对于这个问题有一些建议。TLDR:使用ReadLine而不是ReadToEnd,或者MemoryMappedFile类。此外,TextBox对文本的长度有限制(很难找到)。RichTextBox可以处理更多文本。@dwilless当MaxLength属性设置为0时,控件中可以输入的文本的最大长度仅受可用内存的限制。我在您的示例中运行了代码,它在这里起作用。我创建了一个220mg的文本文件,大约有120000行,并将其命名为LargeText.txt,在我的C:\驱动器上将路径更改为本地路径。表单确实在短时间内进入了(非响应)状态,但在读取文件后才恢复了生命。它将所有220mg文本加载到文本控件中,没有任何错误。说到错误,您看到错误消息了吗?如果是的话,你能告诉我们错误信息是怎么说的吗?