I have a function to read an Excel, then workbook and sheet. But the Excel thread never finish. I tried every solution i found around here but didn't work.
Excel thread stack on task manager, and at moment, my application crash because of Excel stop working.
    public static object[,] ReadFile(string filepath, string sheetname)
    {
        Application xlApp = null;
        Workbooks wks = null;
        Workbook wb = null;
        object[,] values = null;
        try
        {
            xlApp = new ApplicationClass();
            wks = xlApp.Workbooks;
            wb = wks.Open(filepath, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
            Worksheet sh = (Worksheet)wb.Worksheets.get_Item(sheetname);
            values = sh.UsedRange.Value2 as object[,];
            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(sh);
            sh = null;
        }
        catch (Exception ex)
        {
            throw new Exception(string.Format("Sheet \"{0}\" does not exist in the Excel file", sheetname));
        }
        finally
        {
            if (wb != null)
            {
                wb.Close(false);
                Marshal.FinalReleaseComObject(wb);
                wb = null;
            }
            if (wks != null)
            {
                wks.Close();
                Marshal.FinalReleaseComObject(wks);
                wks = null;
            }
            if (xlApp != null)
            {
                // Close Excel.
                xlApp.Quit();
                Marshal.FinalReleaseComObject(xlApp);
                xlApp = null;
            }
        }
        return values;
    }
Maybe i don't do things in the right order, or maybe i understood wrong the COM object problem.
 
     
     
    