小编Sur*_*ler的帖子

在C#中处理大文件时出现内存不足异常

我有一个C#winforms应用程序,其中我使用OpenFileDialog让用户选择要打开的文本文件.(允许多个选择)一旦他们选择了文本文件,我逐个打开文件,获取文本并存储内容使用List.Add()操作的List变量.

当用户选择异常大量的文本文件(如1264个文本文件,总大小高达750MB)时,我的问题就出现了,程序无法处理它.它读取了大约850个文件然后给我一个内存不足的例外.在任务管理器中,当发生这种情况时,我的应用程序的内存(私有工作集)大约为1.5GB.我使用x64机器与32GB内存.

我给出了通读文件的代码:

public static List<LoadData> LoadDataFromFile(string[] filenames)
{
    List<LoadData> MasterData = new List<LoadData>();
    lookingForJobs = new LookingForJobs(1,filenames.Length);
    lookingForJobs.Show();
    /*-------OUTER LOOP TO GO THROUGH ALL THE FILES-------*/
    for (int index = 0; index < filenames.Length; index++)
    {
        string path = filenames[index];
        /*----------INNER LOOP TO GO THROUGH THE CONTENTS OF EACH FILE------*/
        foreach (string line in File.ReadAllLines(path))
        {
            string[] columns = line.Split('\t');
            if (columns.Length == 9)
            {
                if (line.StartsWith("<"))    /*-------IGNORING THE FIRST 8 LINES OF EACH LOG FILE CONTAINING THE LOGGER …
Run Code Online (Sandbox Code Playgroud)

.net c# list visual-studio-2010 winforms

2
推荐指数
1
解决办法
2635
查看次数

C#中的" - "代表什么,以及它在VB中的作用

我有这个示例代码

public class MyClass
{
    private static int tempKey = 0;

    public MyClass()
    {
        this.Key = --tempKey;
    }
    public int Key {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

--tempkey究竟做了什么?

c# vb.net visual-studio-2010

1
推荐指数
2
解决办法
533
查看次数

如何将对象的实例作为字符串?

是否有可能将对象的实例作为字符串表示形式返回,例如"0x12345678"或"12345678"?

像这样的伪代码:

string myObjectsInstanceAsAString = myObject.instance.ToString();
Run Code Online (Sandbox Code Playgroud)

谢谢

c#

1
推荐指数
1
解决办法
136
查看次数

.net Winform的应用程序的app.config文件驻留在哪里..?

根据此链接,我们可以在app.confi文件中添加节点.

http://msdn.microsoft.com/en-us/library/ff602939.aspx

那么,该文件存在于何处?如果我给某人一些exe,我可以稍后给他一个app.config并要求他们放在正确的位置 - 所以,该应用程序相应的功能..?

我的应用是C#.net 2.0.

c# app-config winforms

0
推荐指数
1
解决办法
1383
查看次数

标签 统计

c# ×4

visual-studio-2010 ×2

winforms ×2

.net ×1

app-config ×1

list ×1

vb.net ×1