private static void SleepThreadLoop()
{
while (true)
{
SleepData data;
while (SleepDataQueue.TryDequeue(out data))
SleepDatas.AddLast(data);
var removeData = new LinkedList<SleepData>();
foreach (var sleepData in SleepDatas)
{
if(sleepData.Pass())
removeData.AddLast(sleepData);
}
foreach (var sleepData in removeData)
{
SleepDatas.Remove(sleepData);
Run(sleepData.Thread);
}
System.Threading.Thread.Sleep(250);
}
}