public DataTable GetDs(int j)
{
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(String));
dt.Columns.Add("Value", typeof(String));
DataRow dr = null;
for (int i = 0; i < j; i++)
{
dr = dt.NewRow();
dr["ID"] = i;
dr["Value"] = "第" + i + "个";
dt.Rows.Add(dr);
}
return dt;
}
public void Outputvalue(DataTable dt)
{
//创建
Thread tread = new Thread(new ParameterizedThreadStart(Tops));
tread.Start(dt);
tread = new Thread(new ParameterizedThreadStart(Mop));
tread.Start(dt);
}
/// <summary>
/// 上半部分
/// </summary>
/// <param name="obj"></param>
public void Tops(object obj)
{
DataTable dt = (DataTable)obj;
int Count = dt.Rows.Count;
int top = Count / 2;
for (int i = 0; i < top; i++)
{
OutValue(i, 1);
Thread.Sleep(Convert.ToInt32(1000));
}
}
/// <summary>
/// 下半部分
/// </summary>
/// <param name="obj"></param>
public void Mop(object obj)
{
DataTable dt = (DataTable)obj;
int Count = dt.Rows.Count;
int top = Count / 2;
for (int i = top; i < Count; i++)
{
OutValue(i, 2);
Thread.Sleep(Convert.ToInt32(500));
}
}
/// <summary>
/// 定义委托
/// </summary>
/// <param name="str"></param>
/// <param name="i"></param>
public delegate void MyInvoke(object str, int i);
/// <summary>
/// 委托方法
/// </summary>
/// <param name="obj"></param>
/// <param name="i"></param>
private void OutValue(object obj, int i)
{
if (textBox1.InvokeRequired)
{
MyInvoke _myInvoke = new MyInvoke(OutValue);
this.Invoke(_myInvoke, new object[] { obj,i });
}
else
{
if (i == 1)
{
textBox1.Text = textBox1.Text + "这个是第:" + obj.ToString() + " 个\r\n";
}
else
{
textBox2.Text = textBox2.Text + "这个是第:" + obj.ToString() + " 个\r\n";
}
}
}
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = GetDs(100);
Outputvalue(dt);
}