/// <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); } }
/// <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); } }