标签:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Threading; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { private Semaphore semaphore; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //创建信号量 semaphore = new Semaphore(Convert.ToInt32(numericUpDown1.Value), Convert.ToInt32(numericUpDown1.Value),"MySemaphore"); for (int i = 0; i < 100;i++ ) { //实体类用于传i TaskObject task = new TaskObject(i); Thread th = new Thread(new ThreadStart(delegate { work2(task); })); th.IsBackground = true; th.Start(); } //semaphore.Close(); } private void work2(TaskObject task) { semaphore.WaitOne(); this.Invoke(new MethodInvoker(delegate { textBox1.AppendText(task.ID.ToString()+ "\r\n"); })); Thread.Sleep(1000); semaphore.Release(1); } private void button2_Click(object sender, EventArgs e) { textBox1.Clear(); } } }
标签:
原文地址:http://www.cnblogs.com/milest/p/4705458.html