0

セマフォを使用してリソースのプールを制御する場合、このリソースプールのクリーンシャットダウンシーケンスは何ですか?

  class ResourcePool
  {
  Semaphore resourceSemaphore;
  Stack<ResourceClass> resources;
    public ResourcePool()
    {
        resources ... // Init some Resources in the stack
        resourceSemaphore=  new Semaphore(resources.Count,resources.Count);

    }

    public void ResourceTask()
    {
        resourceSemaphore.WaitOne();
        ResourceClasscurrent = null;
        try
        {
            current = resources.Pop();
            current.Task();
        }
        finally
        {
            if( current != null )
                resources.Push(current);

            resourceSemaphore.Release();
        }

    }
  }

このプールのクリーンシャットダウンシーケンスを実装するにはどうすればよいですか?たぶん、リソースはIDisposableを使用しますが、これは最終的には機能するはずです。

4

1 に答える 1

0

CLRでのスレッド管理に役立つことを願っています

于 2009-10-21T14:26:41.167 に答える