Bevisuali.Model.Workbench.ThreadMainLearningTasks C# (CSharp) Method

ThreadMainLearningTasks() protected method

protected ThreadMainLearningTasks ( ) : void
return void
        protected void ThreadMainLearningTasks()
        {
            while (true)
            {
                if (_learningTasksThreadCancel)
                {
                    break;
                }

                bool didWork = false;

                List<LearningTaskRecord> learningTasks;
                lock (_learningTasksInternal)
                {
                    learningTasks = _learningTasksInternal.ToList();
                }

                foreach (var learningTaskRecord in learningTasks)
                {
                    if (learningTaskRecord.LearningTask.LearningState == ComputationState.Initialized)
                    {
                        DoLearning(learningTaskRecord.LearningTask);

                        didWork = true;
                    }
                }

                if (_learningTasksThreadCancel)
                {
                    break;
                }

                if (!didWork)
                {
                    Thread.Sleep(200);
                }
            }
        }