Example #1
0
        /// <summary>
        /// The WaitCallback delegate object in actual of our thread pool.
        /// </summary>
        /// <param name="state"></param>
        static void Callback(object state)
        {
            WaitCallbackHelper wcbh = (state as WaitCallbackHelper);

            wcbh.Callback();
            (wcbh.WaitHandle as AutoResetEvent).Set();
        }
Example #2
0
        /// <summary>
        /// Queues a method for execution.
        /// The method executes when a thread pool thread becomes available.
        /// </summary>
        /// <param name="proc"></param>
        /// <returns></returns>
        public static bool QueueUserWorkItem(WaitCallbackNew callback)
        {
            WaitCallbackHelper wcbh = new WaitCallbackHelper();
            wcbh.Callback = callback;
            wcbh.WaitHandle = new AutoResetEvent(false);
            if (AutoResetEvents == null)
            {
                AutoResetEvents = new List<WaitHandle>();
            }
            AutoResetEvents.Add(wcbh.WaitHandle);

            return ThreadPool.QueueUserWorkItem(new WaitCallback(Callback), wcbh);
        }
Example #3
0
        /// <summary>
        /// Queues a method for execution.
        /// The method executes when a thread pool thread becomes available.
        /// </summary>
        /// <param name="proc"></param>
        /// <returns></returns>
        public static bool QueueUserWorkItem(WaitCallbackNew callback)
        {
            WaitCallbackHelper wcbh = new WaitCallbackHelper();

            wcbh.Callback   = callback;
            wcbh.WaitHandle = new AutoResetEvent(false);
            if (AutoResetEvents == null)
            {
                AutoResetEvents = new List <WaitHandle>();
            }
            AutoResetEvents.Add(wcbh.WaitHandle);

            return(ThreadPool.QueueUserWorkItem(new WaitCallback(Callback), wcbh));
        }