У меня есть такой код: http://pastie.org/1638879
Я получил его из чьего-то блога.Он должен сортировать большие файлы.Я преформирую его в отдельном потоке:
protected virtual void goButton_Clicked (object sender, System.EventArgs e)
{
FileSort fileSort = new FileSort(fileNameEntry.Text, "./BigFileSorted.dat");
fileSort.SplitProgressChanged += fileSortProgressSplitting;
fileSort.SortChunksProgressChanged += fileSortProgressSorting;
fileSort.MergeProgressChanged += fileSortProgressMerging;
Thread thread = new Thread(fileSort.Sort);
thread.Start();
//fileSort.Sort();
}
protected virtual void fileSortProgressSplitting(FileSort o, double progress)
{
progressBar.Fraction = progress;
progressBar.Text = "Splitting...";
}
protected virtual void fileSortProgressSorting(FileSort o, double progress)
{
progressBar.Fraction = progress;
progressBar.Text = "Sorting...";
}
protected virtual void fileSortProgressMerging(FileSort o, double progress)
{
progressBar.Fraction = progress;
progressBar.Text = "Merging...";
}
Для небольших файлов все нормально, но для больших файлов (около 4 ГБ) progressBar по какой-то причине останавливается на некотором значении на этапе разделения.Но расщепление было закончено.В чем причина этих странностей?PS Я пишу это на Mono и Gtk #.