namespace ThreadTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
ProcessFrom process = new ProcessFrom();
Thread thread1;
Thread thread2;
bool isLoaded1, isLoaded2;
private void simpleButton1_Click(object sender, EventArgs e)
{
//gridControl1.DataSource = dt1;
thread1 = new Thread(new ThreadStart(LoadData1));
thread1.IsBackground = true;
thread1.Start();
thread2 = new Thread(new ThreadStart(LoadData2));
thread1.IsBackground = true;
thread2.Start();
process.ShowDialog();
}
void closeProcess()
{
if (isLoaded1 && isLoaded2 && process.isShow)
{
process.Close();
}
}
void LoadData1()
{
dt1.Columns.Add("序号");
dt1.Columns.Add("行数");
for (int i = 0; i < 10; i++)
{
Thread.Sleep(100);
dt1.Rows.Add(new string[] { "1", Convert.ToString(i + 1) });
}
this.Invoke((EventHandler)(delegate
{
gridControl1.DataSource = dt1;
isLoaded1 = true;
closeProcess();
}));
}
void LoadData2()
{
dt2.Columns.Add("序号");
dt2.Columns.Add("行数");
for (int i = 0; i < 3; i++)
{
Thread.Sleep(1000);
dt2.Rows.Add(new string[] { "1", Convert.ToString(i + 1) });
}
this.Invoke((EventHandler)(delegate
{
gridControl2.DataSource = dt2;
isLoaded2 = true;
closeProcess();
}));
}
private void simpleButton2_Click(object sender, EventArgs e)
{
}
}
}