title: How can solve "Cross-thread operation not valid"?
body: <p>i try to start multi Thread but i can not it returns to me error: <b>Cross-thread operation not valid: 'listBox1' thread was created to control outside access from another thread was.</b></p>
  
  <p>MyCodes: </p>
  
  <pre><code> 
    public DataTable dTable;
          public DataTable dtRowsCount;
          Thread t1;
          ThreadStart ts1;
    void ExcelToSql()
          {
             // SelectDataFromExcel();
              ts1 = new ThreadStart(SelectDataFromExcel);
              t1 = new Thread(ts1);
              t1.Start();
          }</code></pre>
  
  <pre><code>   void SelectDataFromExcel()
          {
              string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Source\Addresses.xlsx;Extended Properties=""Excel 12.0;HDR=YES;""";
              OleDbConnection excelConnection = new OleDbConnection(connectionString);
                        string[] Sheets = new string[] { "Sayfa1"};
              excelConnection.Open(); // This code will open excel file.            
              OleDbCommand dbCommand;
              OleDbDataAdapter dataAdapter;
            //  progressBar1.Minimum = 1;
  
              foreach (var sheet in Sheets)
              {
                  dbCommand = new OleDbCommand("select * From[" + sheet + "$]", excelConnection);
                  //progressBar1.Maximum = CountRowsExcel(sheet).Rows.Count;
                 // progressBar2.Value = i + 1;
                  System.Threading.Thread.Sleep(1000);
                  **listBox1.Items.Add("Tablo ismi: "+sheet.ToUpper()+"Satır Adeti: "+CountRowsExcel(sheet).Rows.Count.ToString()+" ");**
                  dataAdapter = new OleDbDataAdapter(dbCommand);
                  dTable = new DataTable();
                  dataAdapter.Fill(dTable);
                  dTable.TableName = sheet.ToUpper();
                  dTable.Dispose();
                  dataAdapter.Dispose();
                  dbCommand.Dispose();
                  ArrangedDataList(dTable);
                  FillSqlTable(dTable, dTable.TableName);
              }
  
              excelConnection.Close();
              excelConnection.Dispose();
          }</code></pre>