public static async void Beg ()
{
string begin = @"<?xml version=""1.0"" encoding=""utf-8"" standalone=""yes"" ?>
<fellow_update_facility>";
string end = @"</fellow_update_facility>";
int CCountOfUserd = 10000;
int length1 = 0;
List<string> zxc = new List<string>();
IEnumerable<int> items = Enumerable.Range(20000, CCountOfUserd);
items.AsParallel().ForAll(async item =>
{
Interlocked.Increment(ref length1);
//string ddd = await Task.Run(() => GetRecord(item));
zxc.Add(await Task.Run(() => GetRecord(item)));
});
if (zxc.Count == CCountOfUserd)
{
System.IO.File.WriteAllText(@"D:\FDD Update File 1 20150304.xml", begin + string.Join(",", zxc.ToArray()) + end);
}
}
Так вот на выходе zxc.Count == CCountOfUserd количество записей не совпадает с количеством обработанных элементов массива. Количество обработанных элементов массива в length1 смотрю . У меня 8 потоковый проц и прирост больше чем в 10 раз, но надо что б все было правильно.
Метод GetRecord - просто возвращает обработанную строку.
Подскажите что делать.