Более быстрый способ загрузки данных из файлов Excel

Я сделал следующий код для загрузки данных из файлов Excel, чтобы представить их в таблице datagridview, и он работает нормально, но загрузка данных из больших файлов занимает много времени (содержит около 330 000 строк X 20 столбцов), и процесс загрузки не завершен.

Поэтому я ищу более быстрый способ загрузки данных большого размера в таблицу datagridview.

private void Load_Click(object sender, EventArgs e)
{
   DataGrid_1.datasource = null;
   DataGrid_1.datasource = Get_Data_Excel("C:\Test.xls","Select * from [Sheet1$]");
}

public static DataTable Get_Data_Excel(string File_Pth, string Qrr)
{
    OleDbConnection con = new OleDbConnection(
        "provider=Microsoft.ACE.OLEDB.12.0;data source="
            + File_Pth
            + ";Extended Properties=Excel 12.0;");

    StringBuilder stbQuery = new StringBuilder();

    stbQuery.Append(Qrr);

    OleDbDataAdapter adp = new OleDbDataAdapter(stbQuery.ToString(), con);

    DataSet dsXLS = new DataSet();
    adp.Fill(dsXLS);

    return dsXLS.Tables[0];
}

person Doicare    schedule 17.09.2015    source источник
comment
Как насчет того, чтобы использовать фонового рабочего и делать что-то асинхронно?   -  person Uwe Keim    schedule 17.09.2015
comment
Этот вопрос уже задавался и на него уже был дан ответ. Пожалуйста, попробуйте немного поискать в будущем. stackoverflow.com/questions/17577184/   -  person SpaceSteak    schedule 17.09.2015
comment
Это может решить проблему зависания формы, но я думаю, что загрузка займет много времени.   -  person Doicare    schedule 17.09.2015
comment
@SpaceSteak В вашем связанном вопросе используется PIA, тогда как в этом вопросе используется OleDB.   -  person Uwe Keim    schedule 17.09.2015
comment
Это зависит от того, сколько данных вы запрашиваете/запрашиваете. насколько эффективен ваш запрос? насколько большой файл excel? все это имеет значение. размещение его в другом потоке, безусловно, не поможет решить проблемы с производительностью. Иллюзия, что это может помочь, но на самом деле это не так. он просто разблокирует основной поток   -  person Ahmed ilyas    schedule 17.09.2015
comment
Спасибо @UweKeim, я как раз собирался это сказать.   -  person Doicare    schedule 17.09.2015
comment
@SpaceSteak, возможно ли удалить связанный пост, поскольку я не получаю никакой помощи из-за примечания о дублировании, которое вы добавили к моему вопросу.   -  person Doicare    schedule 18.09.2015