У меня есть библиотека классов .NET Core (назовем ее Core), и я хочу использовать WPF GUI для использования некоторых ее функций.Но, похоже, .NET очень медленный по сравнению с .NET Core.Например, у меня есть следующий метод, который я хотел бы запустить:
private static void LoadData()
{
Stopwatch w = new Stopwatch();
List<BookingRecord> records = new List<BookingRecord>();
w.Start();
string csv = File.ReadAllText("/BookingData/Booking_Data - Copy.csv");
Console.WriteLine(w.Elapsed);
w.Restart();
var lines = csv.Split('\n');
foreach(var line in lines.Skip(1))
{
var data = line.Split(';');
records.Add(new BookingRecord()
{
Origin = data[2],
Destination = data[3],
FlightDate = DateTime.Parse(data[4], new CultureInfo("De-de").DateTimeFormat),
PassengersNumber = int.Parse(data[9])
});
}
Console.WriteLine(w.Elapsed);
w.Stop();
}
Для этого я использовал два консольных приложения, одно под .NET Core, а другое под .NET Framework.время создания списка BookingData
в .NET Core составляет 0.4s
, в то время как в случае .NET Framework - около 10s
, что проблематично, так как я буду загружать большие файлы размером примерно 2 миллиона строк и более (клиенттребование).
Так есть ли решение этой проблемы?Цель состоит в том, чтобы предоставить графический интерфейс, отображающий результаты из библиотеки Core.
РЕДАКТИРОВАТЬ
Фрагмент, приведенный выше, предназначен только для предоставления MCVE, в противном случае яЯ читаю файл, используя StreamReader
с помощью CsvHelper
, и построение выполняется во время чтения.
РЕДАКТИРОВАТЬ 2
Загрузка и построение данных встроены в библиотеку Core, другими словами, используя .NET Core, проект WPF или .NET Framework в целом, просто ссылается на библиотеку Core и, используя ее методы, это всего лишь инструмент отображения.Почему он должен давать тот же результат, что и при перемещении кода в проект .NET?