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