Прерывание диалогового окна с потоком

Хотя File.ReadAllLines() является одним из простейших способов чтения файла, он также является одним из самых медленных.

Если вы просто хотите читать строки в файле, не делая многого, в соответствии с этими критериями , самым быстрым способом чтения файла является старый метод:

using (StreamReader sr = File.OpenText(fileName))
{
        string s = String.Empty;
        while ((s = sr.ReadLine()) != null)
        {
               //do minimal amount of work here
        }
}

Однако, если вам приходится много делать с каждой строкой, тогда в этой статье делается вывод о том, что лучший способ заключается в следующем (и быстрее предварительно назначить строку [], если вы знаете, сколько строк вы собираетесь читать):

AllLines = new string[MAX]; //only allocate memory here

using (StreamReader sr = File.OpenText(fileName))
{
        int x = 0;
        while (!sr.EndOfStream)
        {
               AllLines[x] = sr.ReadLine();
               x += 1;
        }
} //Finished. Close the file

//Now parallel process each line in the file
Parallel.For(0, AllLines.Length, x =>
{
    DoYourStuff(AllLines[x]); //do your work here
});

0
задан Josef 13 July 2018 в 21:40
поделиться

1 ответ

Внедрить фоновый режим с помощью AsyncTask , который имеет как методы cancel(), так и isCancelled().

0
ответ дан Karol Dowbecki 17 August 2018 в 12:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: