Си диез / Говнокод #25990 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
public class HttpQueryNameValueCollection : NameValueCollection
    {
        private ParallelLoopResult _parallelLoopResult;

        public override string ToString()
        {
            List<string> result;
            result = new List<string>();
            _parallelLoopResult = Parallel.ForEach(AllKeys, p =>
            {
                if (BaseGet(p) != null)
                    result.Add(p + "=" + Get(p));
            });
            return string.Join("&", result);
        }
    }

Формирование ссылки с query-параметрами недостаточно быстро, поэтому нужно это сделать в параллель :D

Запостил: adoconnection adoconnection, (Updated )

Комментарии (13) RSS

  • а где lock, synchronized, critical section и вот это вот все для доступа из разных тредов?
    Ответить
    • действительно

      тут либо гонки, Либо неебические расходы на синхронизацию
      Ответить
    • Что может случиться, кроме непредсказуемого порядка параметров в запросе?
      Ответить
      • зависит от потокобезопасности List
        вероятно, может и распидорасить, если он не потокбезопасен
        Ответить
        • Если делать по уму - ничего не распидорасит. Для тебя, глупая мартышка, ничто не является безопасным, и в руки тебе ничего давать нельзя.
          Ответить
        • На всякий случай напоминаю тебе, что отвечать безграмотному уёбку, который косит под superkiller1997, не нужно
          Ответить
          • Запили бота, который будет под каждым комментарием уёбков оставлять такую пометку. В наше трудное время хрен поймёшь, кто прикалывается, а кто реально уёбок.
            Ответить
      • В лист добавится меньше записей, чем планировал кастующий параллелизм.

        Пруф:
        static void Main(string[] args)
        {
            List<string> result = new List<string>();
        
            Parallel.ForEach(Enumerable.Range(1, 100000), p =>
            {
                    result.Add(p.ToString());
            });
        
            Console.WriteLine(result.Count);
            Console.ReadKey();
        }
        Ответить
    • Школота умных словечек научила.
      Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8