示例#1
0
        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();
            }
        }
示例#2
0
        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);
                }
            }
        }