recursively calling method (for object reuse purpose)
<p>i have a rather large class which contains plenty of fields (10+), a huge array (100kb) and some unmanaged resouces. let me explain by example</p>

<pre><code>    class ResourceIntensiveClass
{
    private object unmaganedResource; //let it be the expensive resource
    private byte[] buffer = new byte[1024 * 100]; //let it be the huge managed memory
    private Action&lt;ResourceIntensiveClass&gt; OnComplete;


    private void DoWork(object state)
    {
        //do long running task
        OnComplete(this); //notify callee that task completed so it can reuse same object for another task
    }

    public void Start(object dataRequiredForCurrentTask)
    {
        ThreadPool.QueueUserWorkItem(DoWork); //initate long runnig work
    }
}
</code></pre>

<p>the problem is, the start method never returns after 10000. iteration causing a stackoverflow. i could execute the OnComplete delegate in another thread giving the chance the Start method to return, but it requires using extra cpu time and resources as you know. so what is the best option for me?</p>
