110,546
社区成员
发帖
与我相关
我的任务
分享
class Program
{
int interval = 1000;
bool hasT1 = false;
bool hasT2 = false;
static AutoResetEvent AutoEvn1 = new AutoResetEvent(true);
static AutoResetEvent AutoEvn2 = new AutoResetEvent(true);
static void Main(string[] args)
{
Program p = new Program();
Thread T1= new Thread(new ThreadStart(p.goGetT1));
T1.Start();
Thread T2= new Thread(new ThreadStart(p.goGetT2));
T2.Start();
Thread T3= new Thread(new ThreadStart(p.updateTaobao));
T3.Start();
}
public void goGetT1() //
{
while (true)
{
AutoEvn1.WaitOne();
doT1();
}
}
public void doT1()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("T1 do running ------- " + i);
Thread.Sleep(interval);
}
AutoEvn1.Reset();
this.hasT1 = true;
}
public void goGetT2() //
{
while (true)
{
AutoEvn2.WaitOne();
doT2();
}
}
public void doT2()
{
for (int i = 0; i < 20; i++)
{
Console.WriteLine("T2 in running ------- " + i);
Thread.Sleep(interval);
}
AutoEvn2.Reset();
this.hasT2 = true;
}
public void goT3() //更新淘宝库存
{
while (true)
{
if (this.hasT1 && this.hasT2)
{
//
int i = 1;
while (i < 20)
{
Console.WriteLine("T3 in running ------- " + i);
i++;
Thread.Sleep(500);
}
Console.WriteLine("T3 finished");
Thread.Sleep(500);
this.hasT1 = false;
this.hasT2 = false;
AutoEvn1.Set();
AutoEvn2.Set();
}
}
}
}