110,534
社区成员
发帖
与我相关
我的任务
分享
public class Insert
{
public void SpinUp()
{
ThreadStart start = new ThreadStart(this.Start);
Thread _thread = new Thread(start);
_thread.Start();
}
private void Start()
{
for (int i = 1; i <= 5; i++)
{
Thread.Sleep(1000);//实现延迟启动
Delete.sem.Reset();//强行暂停Delete把控制句柄交给Insert
Console.WriteLine("新增第 " + i.ToString() + " 行");
Manage.d.Rows.Add(new object[] { i, i.ToString() });
Delete.sem.Set();// 释放Delete
}
Delete.fi = 1;
}
}
public class Delete
{
public static ManualResetEvent sem = new ManualResetEvent(false);
public static int fi = 0;
public void SpinUp()
{
ThreadStart start = new ThreadStart(this.Start);
Thread _thread = new Thread(start);
_thread.Name = "Delete";
_thread.Start();
}
private void Start()
{
do
{
sem.WaitOne();
for (int i = Manage.d.Rows.Count-1; i >= 0; i--)
{
Console.WriteLine("删除第 " + Manage.d.Rows[i][0] + " 行");
Manage.d.Rows[i].Delete();
}
} while (fi == 0);
Console.WriteLine("所剩行数: " + Manage.d.Rows.Count.ToString());
Console.ReadLine();
}
}
class Manage
{
public static DataTable d = new DataTable();
public Manage()
{
DataColumn dc1 = new DataColumn("ID");
DataColumn dc2 = new DataColumn("value");
d.Columns.AddRange(new DataColumn[] { dc1, dc2 });
}
public void start()
{
Insert i = new Insert();
i.SpinUp();
Delete de = new Delete();
de.SpinUp();
}
}