static void WorkwithOneThread() { int num = 1; Person[] persons; Stop = false; PersonsProvider personsProvider = new PersonsProvider(); FileStream fileStream = File.Create(PathOne); StreamWriter sw = new StreamWriter(fileStream); try { while (!Stop) { persons = personsProvider.GetPersons(num, MaxArrayOfPersons); if (persons.Length == 0) { Stop = true; } num += MaxArrayOfPersons; foreach (Person person in persons) { sw.WriteLine(person); } } } finally { sw.Close(); } }
public static void ReadData() { int num = 1; Person[] persons; PersonsProvider personsProvider = new PersonsProvider(); /*Читаем пока есть данные, те пока метод не вернет пустой массив*/ while (!Stop) { /*кладем экземпляр в очередь, пока в ней не более 100 000 объектов*/ if (threadQueue.Count() < (MaxPersons * MaxArrayOfPersons)) { persons = personsProvider.GetPersons(num, MaxArrayOfPersons); if (persons.Length == 0) { Stop = true; } num += MaxArrayOfPersons; threadQueue.Enqueue(persons); } } }