namespace Thousandto.Update.Download { using Thousandto.Update.Data; using Thousandto.Update.Delegate; using System; public class ThreadMapDataPool : ThreadPool { public ThreadMapDataPool(int maxThreadCount, ThreadPoolAction action) : base(maxThreadCount, action) { } public override MapFileData PopData() { lock (base._lockObj) { MapFileData data = base.PopData(); while ((data != null) && (data.Downloading || data.Downloaded)) { data = base.PopData(); } if (data != null) { data.Downloading = true; } return data; } } } }