MSPlus WebControls For ASP.NET. (服务器端控件)

Upgrade Develop Efficiency,Surprise For U! - Mack.Z

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
using System;
using System.Threading;
namespace ThreadQueue
{
    
/// <summary>
    
/// MutexQueue 的摘要说明。
    
/// </summary>

    public class MutexQueue
    
{
        
private static int poolFlag = 0 ;//标记
        private const int amountThread = 10 ;//线程总量
        private const int maxThread = 1 ;//可执行线程最大数量
        private static Mutex muxConsole = new Mutex() ;

        
public static int ilockcount = 0;

        
public MutexQueue()
        
{
            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
        }


        
public static void Run()
        
{
            
//阻塞队列
            muxConsole.WaitOne(TimeSpan.Zero,true);  

            
//标记+1
            Interlocked.Increment(ref poolFlag);

            
//判断是否等于上限
            if (poolFlag != maxThread)
            
{
                
//如果此线程达不到可执行线程上限,则继续开通,让后面的线程进来
                muxConsole.ReleaseMutex();
            }


            Console.WriteLine( 
"{0} 正在运行\n", Thread.CurrentThread.Name ) ;
            Thread.Sleep( 
5000 );                                                                                             //模拟执行
            Console.WriteLine( "{0} 已经中止\n", Thread.CurrentThread.Name ) ;

            
//标记-1
            Interlocked.Decrement(ref poolFlag);
        }

    }

}

posted on 2005-06-29 23:11  Mack.Z  阅读(2303)  评论(1)    收藏  举报