using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Threading;
namespace ConsoleApplication1
{
class MutilThread
{
public static DataRow dr;
public static DataTable dt = new DataTable();
private object obj = new object();
private Thread PrimaryThread;
private Thread SecondThread;
public MutilThread()
{
PrimaryThread = new Thread(Run);
PrimaryThread.Name = "Primary";
SecondThread = new Thread(Run);
SecondThread.Name = "Second";
}
static void Main()
{
CreateDataTable();
MutilThread mt = new MutilThread();
mt.Start();
}
public void Start()
{
PrimaryThread.Start();
SecondThread.Start();
}
public void Run()
{
while (dt.Rows.Count > 0)
{
int id = int.MinValue;
lock (obj)
{
if (dt.Rows.Count > 0)
{
id = int.Parse(dt.Rows[0]["ID"].ToString());
}
dt.Rows.RemoveAt(0);
}
GetIDString(id);
}
}
public void GetIDString(int id)
{
Console.WriteLine("Current Thread:{0},ID:{1}",Thread.CurrentThread.Name,id);
}
public static DataTable CreateDataTable()
{
DataColumn dc = new DataColumn("ID", Type.GetType("System.Int32"));
dt.Columns.Add(dc);
for(int i=0;i<100;i++)
{
dr = dt.NewRow();
dr["ID"] = i;
dt.Rows.Add(dr);
}
return dt;
}
}
}