阿伦.艾弗森现状:多线程Demo
来源:百度文库 编辑:九乡新闻网 时间:2024/05/02 00:24:05
using System;
using System.Linq;
using System.Text;
using System.Threading;
using System.Collections;
using System.Collections.Generic;namespace ConsoleDemo
{
public class ThreadDemo
{
private Thread thread1;
private Thread thread2;
private ArrayList arryList;
private event EventHandler message; public ThreadDemo(int number)
{
Random random = new Random(100000);
arryList = new ArrayList(number);
for (int i = 0; i < number; i++)
{
arryList.Add(random.Next(0,10).ToString());
}
thread1 = new Thread(new ThreadStart(Run));
thread2 = new Thread(new ThreadStart(Run));
thread1.Name = "线程1";
thread2.Name = "线程2";
message += new EventHandler(ThreadDemo_message);
} void ThreadDemo_message(object sender, EventArgs e)
{
Console.WriteLine("删除完毕!");
Console.Read();
thread1.Abort();
thread2.Abort();
} public void Action()
{
thread1.Start();
thread2.Start();
} public void Run()
{
string strValue = null;
while (true)
{
Monitor.Enter(this); //锁定,保持同步
strValue = (string)arryList[0];
Console.WriteLine(Thread.CurrentThread.Name+"删除了"+strValue);
arryList.RemoveAt(0); if (arryList.Count == 0)
{
message(this,new EventArgs());
} Monitor.Exit(this);
Thread.Sleep(5);
}
}
}
} using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace ConsoleDemo
{
class Program
{
static void Main(string[] args)
{
ThreadDemo threadDemo = new ThreadDemo(4);
threadDemo.Action();
}
}
}
//应用委托using System;
using System.Linq;
using System.Text;
using System.Threading;
using System.Collections;
using System.Collections.Generic;namespace ConsoleDemo
{
public class ThreadDemo
{
private Thread thread1;
private Thread thread2;
private ArrayList arryList;
//private event EventHandler message;
private delegate void message(); public ThreadDemo(int number)
{
Random random = new Random(100000);
arryList = new ArrayList(number);
for (int i = 0; i < number; i++)
{
arryList.Add(random.Next(0,10).ToString());
}
thread1 = new Thread(new ThreadStart(Run));
thread2 = new Thread(new ThreadStart(Run));
thread1.Name = "线程1";
thread2.Name = "线程2";
//message += new EventHandler(ThreadDemo_message);
} void Message()
{
Console.WriteLine("删除完毕!");
Console.Read();
thread1.Abort();
thread2.Abort();
} void ThreadDemo_message(object sender, EventArgs e)
{
Console.WriteLine("删除完毕!");
Console.Read();
thread1.Abort();
thread2.Abort();
} public void Action()
{
thread1.Start();
thread2.Start();
} public void Run()
{
string strValue = null;
while (true)
{
Monitor.Enter(this); //锁定,保持同步
strValue = (string)arryList[0];
Console.WriteLine(Thread.CurrentThread.Name+"删除了"+strValue);
arryList.RemoveAt(0); if (arryList.Count == 0)
{
message message1 = new message(Message);
message1();
} Monitor.Exit(this);
Thread.Sleep(2);
}
} }
}
using System.Linq;
using System.Text;
using System.Threading;
using System.Collections;
using System.Collections.Generic;namespace ConsoleDemo
{
public class ThreadDemo
{
private Thread thread1;
private Thread thread2;
private ArrayList arryList;
private event EventHandler message; public ThreadDemo(int number)
{
Random random = new Random(100000);
arryList = new ArrayList(number);
for (int i = 0; i < number; i++)
{
arryList.Add(random.Next(0,10).ToString());
}
thread1 = new Thread(new ThreadStart(Run));
thread2 = new Thread(new ThreadStart(Run));
thread1.Name = "线程1";
thread2.Name = "线程2";
message += new EventHandler(ThreadDemo_message);
} void ThreadDemo_message(object sender, EventArgs e)
{
Console.WriteLine("删除完毕!");
Console.Read();
thread1.Abort();
thread2.Abort();
} public void Action()
{
thread1.Start();
thread2.Start();
} public void Run()
{
string strValue = null;
while (true)
{
Monitor.Enter(this); //锁定,保持同步
strValue = (string)arryList[0];
Console.WriteLine(Thread.CurrentThread.Name+"删除了"+strValue);
arryList.RemoveAt(0); if (arryList.Count == 0)
{
message(this,new EventArgs());
} Monitor.Exit(this);
Thread.Sleep(5);
}
}
}
} using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace ConsoleDemo
{
class Program
{
static void Main(string[] args)
{
ThreadDemo threadDemo = new ThreadDemo(4);
threadDemo.Action();
}
}
}
//应用委托using System;
using System.Linq;
using System.Text;
using System.Threading;
using System.Collections;
using System.Collections.Generic;namespace ConsoleDemo
{
public class ThreadDemo
{
private Thread thread1;
private Thread thread2;
private ArrayList arryList;
//private event EventHandler message;
private delegate void message(); public ThreadDemo(int number)
{
Random random = new Random(100000);
arryList = new ArrayList(number);
for (int i = 0; i < number; i++)
{
arryList.Add(random.Next(0,10).ToString());
}
thread1 = new Thread(new ThreadStart(Run));
thread2 = new Thread(new ThreadStart(Run));
thread1.Name = "线程1";
thread2.Name = "线程2";
//message += new EventHandler(ThreadDemo_message);
} void Message()
{
Console.WriteLine("删除完毕!");
Console.Read();
thread1.Abort();
thread2.Abort();
} void ThreadDemo_message(object sender, EventArgs e)
{
Console.WriteLine("删除完毕!");
Console.Read();
thread1.Abort();
thread2.Abort();
} public void Action()
{
thread1.Start();
thread2.Start();
} public void Run()
{
string strValue = null;
while (true)
{
Monitor.Enter(this); //锁定,保持同步
strValue = (string)arryList[0];
Console.WriteLine(Thread.CurrentThread.Name+"删除了"+strValue);
arryList.RemoveAt(0); if (arryList.Count == 0)
{
message message1 = new message(Message);
message1();
} Monitor.Exit(this);
Thread.Sleep(2);
}
} }
}