Home > database >  OpenFileDialog - Speed issue/hide dialog immediately
OpenFileDialog - Speed issue/hide dialog immediately

Time:10-13

Hello im having trouble with file dialog

Standard code, but it's freezing while selecting large files (600MB xls file that i need to first reformat to xlsb, then stream data from, but that is not important here).

What i wanted to achieve is to hide dialog when Open button is clicked, so that i could display Loading Message.

Yet im not sure how can i achieve that. Can i somehow subscribe to Open button?

OpenFileDialog openFile = new OpenFileDialog() { DereferenceLinks = false };

openFile.Title = "Select Supplier List";
openFile.Filter = "Excel files (*.*xls*)|*.*xls*";

try
{
    if (openFile.ShowDialog() == true) 
    {
        /* Takes long time to go after selection */
        ViewModel.ReportPath = openFile.FileName;
        ViewModel.FileTrueName = Path.GetFileName(ViewModel.ReportPath);
    }
}
catch
{
    ViewModel.ReportPath = null;
    ViewModel.FileTrueName = null;
}

CodePudding user response:

Wrapping code with task, helped :) Some changes happened during searching for answer, based on comments.

Task.Run(() => 
{
    OpenFileDialog openFile = new OpenFileDialog();

    openFile.Title = "Select Supplier List";
    openFile.Filter = "Excel Files(*.xls; *.xlsx; *.xlsb; *.xlsm)| *.xls; *.xlsx; *.xlsb; *.xlsm";
    try
    {
        if (openFile.ShowDialog() == true)
        {
            ViewModel.ReportPath = openFile.FileName;
            ViewModel.FileTrueName = Path.GetFileName(ViewModel.ReportPath);
        }
    }
    catch
    {
        ViewModel.ReportPath = null;
        ViewModel.FileTrueName = null;
    }
});
  • Related