Esempio n. 1
0
        /// <summary>開始方法を規定する(スレッドプール)</summary>
        /// <returns>
        /// true:開始した
        /// false:開始できなかった
        /// </returns>
        public bool StartByThreadPool()
        {
            lock (MyBaseAsyncFunc._lock)
            {
                // スレッド数の最大数(既定値は、1)
                int maxThreadCount
                    = FxCmnFunction.GetNumFromConfig(FxLiteral.MAX_THREAD_COUNT, 1);

                if (BaseAsyncFunc.ThreadCount >= maxThreadCount)
                {
                    // 開始できなかった
                    return(false);
                }

                // スレッド数インクリメント&画面ロック
                BaseAsyncFunc.ThreadCount++;
                this.WindowLock();

                // 非同期実行(スレッドプール)
                ThreadPool.QueueUserWorkItem(new WaitCallback(this.CmnCallbackP), this);

                // 開始した
                return(true);
            }
        }
Esempio n. 2
0
        /// <summary>開始方法を規定する</summary>
        /// <returns>
        /// true:開始した
        /// false:開始できなかった
        /// </returns>
        public bool Start()
        {
            lock (MyBaseAsyncFunc._lock)
            {
                // スレッド数の最大数(既定値は、1)
                int maxThreadCount = FxCmnFunction.GetNumFromConfig(FxLiteral.MAX_THREAD_COUNT, 1);

                if (BaseAsyncFunc.ThreadCount >= maxThreadCount)
                {
                    // 開始できなかった
                    return(false);
                }

                // スレッド数インクリメント&画面ロック
                BaseAsyncFunc.ThreadCount++;
                this.WindowLock();

                // 非同期実行(スレッド)
                Thread th = new Thread(this.CmnCallback);
                th.Start();

                // 開始した
                return(true);
            }
        }