Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Получить данные с потоков
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. У меня такая задача. на сервере отправить разом 100 запросов и рассчитать среднее время ответа. Пробую так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. но понимаю что это не верно. так как у меня время elapsed_time все время увеличивается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2015, 22:41 |
|
||
|
Получить данные с потоков
|
|||
|---|---|---|---|
|
#18+
IPmen, Создать массив на 100 ManualResetEvent (или Auto, как хотите), каждый эвент передаете в вебклиент, в ДанлоадСтрингКомплитед устанавливаете для переданного эвента сигнал. Стопвач нужно вынести из цикла. Перед тем, как вызвать стоп на стопвотче, делаем WaitAll на все 100 эвентов. берем элапседтайм и делим на 100, получаем среднее время ЗЫ IPman :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2015, 01:03 |
|
||
|
Получить данные с потоков
|
|||
|---|---|---|---|
|
#18+
ЕМНИП у Рихтера что-то было на эту тему. Есть какое-то исскуственное ограничение на кол-во одновременных запросов к одному серверу. Вроде всего 2 по дефолту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2015, 11:04 |
|
||
|
Получить данные с потоков
|
|||
|---|---|---|---|
|
#18+
Согласен с Dima T. Нужно добавить в app.config: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2015, 18:45 |
|
||
|
Получить данные с потоков
|
|||
|---|---|---|---|
|
#18+
Arm79 Стопвач нужно вынести из цикла. Перед тем, как вызвать стоп на стопвотче, делаем WaitAll на все 100 эвентов. Ага, ага! Он может максимум 64 ждать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 11:46 |
|
||
|
Получить данные с потоков
|
|||
|---|---|---|---|
|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 12:06 |
|
||
|
Получить данные с потоков
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВ, Я сам не проверял, если честно, не было никогда такой необходимости ))) Сейчас перепроверил, да, действительно, не более 64. Но это легко же обходится. Один эвент и ждем его, + заводим переменную = 99, которой в ДанлоадСтрингКомплитед через Interlocked уменьшаем на 1 и если стало 0, то устанавливаем эвент ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 12:36 |
|
||
|
Получить данные с потоков
|
|||
|---|---|---|---|
|
#18+
Arm79, Зачем мучаться? Task.WaitAll не имеет таких ограничений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 13:00 |
|
||
|
Получить данные с потоков
|
|||
|---|---|---|---|
|
#18+
IPmen, у Вас классический пример эффекта замыкания в C# В C# 5.0 для foreach эту фичу немного изменили (в цикле for она все еще присутствует) Поэтому видоизмените ваш код Код: c# 1. на Код: c# 1. и почувствуйте разницу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2015, 14:20 |
|
||
|
Получить данные с потоков
|
|||
|---|---|---|---|
|
#18+
Всем спасибо а что если сделать через Prallel For Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. В таком виде заметил интересную вещь. точнее Console.WriteLine("Request " + i); выдаёте нумерацию по очереди 1,2,3,4,5,6 и т.д разве код е должен внутри Код: c# 1. 2. не должен выполнится асинхронно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 14:56 |
|
||
|
Получить данные с потоков
|
|||
|---|---|---|---|
|
#18+
IPmenВсем спасибо а что если сделать через Prallel For Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. В таком виде заметил интересную вещь. точнее Console.WriteLine("Request " + i); выдаёте нумерацию по очереди 1,2,3,4,5,6 и т.д разве код е должен внутри Код: c# 1. 2. не должен выполнится асинхронно? Прошу прощения не так написал. у меня код Parallel.For( вызывается несколько раз в цикле, Код: c# 1. 2. 3. 4. и строка Console.WriteLine("Request" + i); выдаёте нумерацию по очереди 1,2,3,4,5,6 и т.д до 10. разве так должно быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2015, 15:01 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=39122135&tid=1400989]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
88ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 182ms |

| 0 / 0 |
