powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему Task - и так странно запускаются.
38 сообщений из 38, показаны все 2 страниц
Почему Task - и так странно запускаются.
    #39803109
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся со странным поведением программы. Накидал вот тест:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
        private void button1_Click(object sender, EventArgs e)
        {
            int cnt = 0;
            for (int i = 0; i < 100; i++)
            {
                Task t = new Task(check);
                t.Start();
                Text = $"{cnt++}";
            }
        }

        private void check()
        {
            File.WriteAllText($@"c:\task\{Path.GetRandomFileName()}", "1");
            Thread.Sleep(1000);
        }



Цикл отрабатывает мгновенно, что видно по числу в заголовке окна, а вот файлики в папке создаются неохотно, если поставить задержку 1000 то где-то 10 в секунду, если 50000 то примерно один в секунду.

Что мешает всем таскам выполниться сразу?
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803123
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlЧто мешаетsleep, размер пула, накладные расходы на параллельность
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803145
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlЦикл отрабатывает мгновенноа почему должно быть иначе, он же не ждет выполнения задач
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803162
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql,

было бы странно, если бы не было так
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803295
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я почему-то думал что таск это тоже что и поток, только в "улучшенном" виде. Для чего тогда эти таски?
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803314
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlЯ почему-то думал что таск это тоже что и поток, только в "улучшенном" виде. Для чего тогда эти таски?делаь потоки, только в улучшенном виде.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803354
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123делаь потоки, только в улучшенном виде.нет
таск не эквивалентен потоку
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803367
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlЯ почему-то думал что таск это тоже что и поток, только в "улучшенном" виде. Для чего тогда эти таски?
Если 100 потоков одновременно будут что-то делать нагружая проц, то на каждый логический проц будет 10+ потоков и все будет тормозить из-за постоянного переключения контекста потоков. Т.е. существенная часть работы проца будет связана с диспетчеризацией потоков.

Более эффективная стратегия использовать столько потоков, сколько лог.процов. В реале можно чуть больше, т.к. поток может приостановиться ожидая ответа диска/сети и т.п.

Поэтому запускается столько тасков сколько разрешено запускать параллельно, а остальные ждут и запускаются по мере завершения ранее запущеных.

Если не путаю, количество потоков исполняющих такси как-то настраивается, погугли.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803378
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Сдается мне, тут что-то еще... Вот в приведенном примере, когда я ставлю задержку 50 сек. почему стартует не какое-то количество, а по одному в секунду? Ведь никакой нагрузки то нет, sleep всего-лишь.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803379
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
- Откуда дети берутся?
- Аист приносит.
Ты: - нет, их не аист приносит))))
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803383
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlСдается мне, тут что-то еще..да. Возьми книжку с примером, и выполни пример.
Там много чего есть, чем бездумно тормозить поток.
Даже есть рекомендация от MS таким деятелям, которые поток тормозят.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803393
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlВедь никакой нагрузки то нет, sleep всего-лишь.
Управляя тасками извне непонятно sleep() у тебя выполняется или майнинг идет со 100% нагрузкой на проц. Правило построено на среднестатистических наблюдениях.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803396
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Понятно. Переделал программу на потоки - все заработало как надо.

Хех, а в каком то описании читал, мол потоки вчерашний день, а таски крестиком вышивать умеют и пиво приносят. А они вон оно как - пока не пнешь не полетит. Не для меня они вобщем...
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803409
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlПонятно. Переделал программу на потоки - все заработало как надо.Можно было просто запускать Task с LongRunning опцией, тогда потоки брались бы не из пула.

Но что так, что с тредами - подход плохой - ты создаешь потоки, которые ничего не делают, зато жрут ресурсы как не в себя.
Лучше использовать асинхронный ввод-вывод на стримах.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803410
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlХех, а в каком то описании читал, мол потоки вчерашний день, а таски крестиком вышивать умеют и пиво приносят.так и есть, ты просто не удосужился изучить вопрос
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803412
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Shocker.Pro,
- Откуда дети берутся?
- Аист приносит.
Ты: - нет, их не аист приносит))))пора взрослеть
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803428
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proкоторые ничего не делают, зато жрут ресурсы как не в себя.

Я так понимаю, ты за локальные ресурсы переживаешь... У меня же потоки лезут "в эти ваши интернеты" и в основном ждут ответа в следующей серии... Просто я, поверив рекламе, решил что таски лучше будут. а какой мне с них смысл, если на потоках программа отрабатывает уже тогда, когда таски только начинают "раскачиваться"
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803432
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlПросто я, поверив рекламе, решил что таски лучше будут. а какой мне с них смысл, если на потоках программа отрабатывает уже тогда, когда таски только начинают "раскачиваться"Если ты не умеешь пользоваться инструментом, это не значит, что он плохой.

Тогда непонятно, зачем ты спрашиваешь совета.


iskatelsqlУ меня же потоки лезут "в эти ваши интернеты" и в основном ждут ответа в следующей серии... Еще хуже, если ты это сделаешь с помощью потоков, а не с помощью асинхронного программирования.

Совет - забудь слово Thread и изучай тему. Не хочешь - пили как хочешь, но не спрашивай, как правильно
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803437
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProСовет - забудь слово Thread и изучай тему.

И с какого бока ее начать изучать? Вот код у меня как в примере. только вместо sleep обращение к серверу, с его таймаутами. И тупила программа так же как в примере.

Ну задал я тут вопрос, получил первых три очень многозначительных ответа, понял что полез не туда и протоки наше все. Теперь ты говоришь что вроде как изначальный подход верный был. Но он же не работал как надо...

Ничего не понимаю (с)
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803446
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlИ с какого бока ее начать изучать?с теории. Есть книжки такие, учебниками называются.


iskatelsqlВот код у меня как в примере. только вместо sleep обращение к серверу, с его таймаутамиОбращение может быть разное и я подозреваю, что обращаешься ты к синхронным методам вместо асинхронных. Ты же не приводишь свой реальный код, но требуешь ответов.

iskatelsqlНо он же не работал как надо...еще раз. Не он не работал как надо, а ты не понял, как правильно им пользоваться
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803454
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proчто обращаешься ты к синхронным методам вместо асинхронных
Ну да, так я с помощью таска и хотел сделать синхронный метод асинхронным, чтоб одновременно выполнялись.

А в коде - просто вызов ф-ции из внешней сишной длл, и она либо сразу возвращается либо по таймауту секунд через пять. Можно вполне считать что там sleep(random(от 1 до 5000))
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803463
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlА в коде - просто вызов ф-ции из внешней сишной длл, и она либо сразу возвращается либо по таймауту секунд через пять. Можно вполне считать что там sleep(random(от 1 до 5000))iskatelsqlУ меня же потоки лезут "в эти ваши интернеты"то одно, то другое, то третье...
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803471
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proто одно, то другое, то третье...
А что не так? ф-ция то та в интернеты лезет...
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803474
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlА что не так? ф-ция то та в интернеты лезет...iskatelsqlи она либо сразу возвращается либо по таймауту секунд через пятьа где она тут лезет. Если СРАЗУ возвращает, значит длительная операция не начиналась. Если таймаут - значит ошибка. А где тут собственно полезная работа-то?
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803498
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА где тут собственно полезная работа-то?

А что ты имеешь ввиду под полезной работой?

Ну приконектилась она, скачала пару байтиков и вышла или подождала таймаута и вышла. Ну будь это не внешняя длл, а сокет какой нить, что бы изменилось?

Я тебя не понимаю. С потоками то все работает как надо. А ты говоришь что с потоками не правильно, потом говоришь что у меня задача неправильная. Кинь чтоль ссылку на пример того что имеешь ввиду. А то я уже подозреваю что ты из секты "потоки зло" и агитируешь всех использовать таски, пусть даже программа в итоге будет делать не то что изначально задумано :)
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803507
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно реализовать свой taskscheduler, в котором вы реализуете свой пул потоков, сами определите порядок выполнения, зависимости,возможность выбора приоритетных тасков или какие то свои прибамбасы, и прочее. Не особо сложно делается.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803512
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlЯ тебя не понимаю. С потоками то все работает как надо. А ты говоришь что с потоками не правильно, потом говоришь что у меня задача неправильная. Кинь чтоль ссылку на пример того что имеешь ввиду. А то я уже подозреваю что ты из секты "потоки зло" и агитируешь всех использовать таски, пусть даже программа в итоге будет делать не то что изначально задумано :)Я писал выше - если использовать LongRunning - ты получишь то поведение, которое добился через Thread-ы, только с тасками. Ну и причем тут секта?

iskatelsqlНу будь это не внешняя длл, а сокет какой нить, что бы изменилось?Изменилось бы то, что ты бы использовать асинхронные методы доступа к сокетам, и потоки не использовались бы вообще.


iskatelsqlА что ты имеешь ввиду под полезной работой?ну так "скачала пару байтиков" - это полезная работа. Но изначально у тебя было только два варианта
1) вернула управление сразу (то есть ничего не качала)
2) отвалилась по таймауту (тоже не получила данные)

Поэтому я и говорю - ты рассказываешь сначала про файлы, потом про обращение к интернету, потом про использование библиотеки с синхронными методами, теперь сокеты, щас еще что--нибудь всплывет
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803514
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlНу приконектилась она, скачала пару байтиковделят по слоям сегодня.
Байтики это транспортный уровень.
А бизнес логика программы это уровень выше.
Поэтому MS прикрыл прямое обращение к потокам.
Чтобы лапшу не делали и слово байтики прикладник не произносил.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803516
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Чтобы лапшу не делали и слово байтики прикладник не произносил.У него неуправляемый код - он вынужден произносить ))
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803522
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProPetro123Чтобы лапшу не делали и слово байтики прикладник не произносил.У него неуправляемый код - он вынужден произносить ))любой код делят на слои.
Пусть байты свои заворачивает в транспортный уровень.
А наверху, хоть message queue строит.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39803612
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql, почитай Рихтера . Он доступно описывает в чем разница потоков, тасков и т.д.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39804597
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Пусть байты свои заворачивает в транспортный уровень.

Ты упертый какой-то, в заворачивания. Нахрена оно надо если не надо?

Вот тебе пример - в лохматом году, когда шарп был еще не шарп, а подобие. (я на питоне тогда это делал)
Некий малоизвестный сайт "лайвжасмин" с блекджеком и... выпустил офигительную акцию, которая продержалась несколько лет, а именно - регишься и тебе 5 "подглядок" в привате, почту апрувил - и уже не 5 а 10 или 15 (хз отчего так)

ну и где наша не пропадала - регимся миллионами. "подглядка" - 20 секунд., запускаем "подглядки" с зазором в пару секунд = ок. Стрим общий, ищем "хвосты" соединяем.

Все это лирика, главное в том - надо ли мне было разбирать RTMP по составляющим, или достаточно было найти регекспами заголовки чанков, чтоб достать оттуда видео?

По секрету скажу... не надо было
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39804614
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlPetro123Пусть байты свои заворачивает в транспортный уровень.

Ты упертый какой-то, в заворачивания. Нахрена оно надо если не надо?

Вот тебе пример - в лохматом году, когда шарп был еще не шарп, а подобие. (я на питоне тогда это делал)
Некий малоизвестный сайт "лайвжасмин" с блекджеком и... выпустил офигительную акцию, которая продержалась несколько лет, а именно - регишься и тебе 5 "подглядок" в привате, почту апрувил - и уже не 5 а 10 или 15 (хз отчего так)

ну и где наша не пропадала - регимся миллионами. "подглядка" - 20 секунд., запускаем "подглядки" с зазором в пару секунд = ок. Стрим общий, ищем "хвосты" соединяем.

Все это лирика, главное в том - надо ли мне было разбирать RTMP по составляющим, или достаточно было найти регекспами заголовки чанков, чтоб достать оттуда видео?

По секрету скажу... не надо было

Ух ты, есть чем гордиться и внукам рассказывать
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39804615
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlНахрена оно надо если не надо?некоторые дома мусор не разделяют на стекло, пластик и... мусор.
Как им объяснить что на сегодняшний текущий момент надо разделять?
Никак.
iskatelsqlВсе это лирика
Дисциплина такая есть - архитектура. Паттерны всякие))
Но если ты не чувствовал необходимость, значит тебе не надо.
Есть высокотехнологичные компании а ля Маск, где это надо.
Удачи!
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39804772
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlЦикл отрабатывает мгновенно, что видно по числу в заголовке окна, а вот файлики в папке создаются неохотно, если поставить задержку 1000 то где-то 10 в секунду, если 50000 то примерно один в секунду.

Что мешает всем таскам выполниться сразу?
1. Создавать кучу файлов - само по себе медленно. И неочевидно, что именно запись на диск нужно параллелить. Это имеет смысл, если только у вас несколько дисков.
2. Как вы посчитали, что "если поставить задержку 1000 то где-то 10 в секунду, если 50000 то примерно один в секунду"? Увидели в эксплорере? )))
3. Не нужно создавать кучу тасков в данном примере, так как нужно контролировать количество процессоров/ядер, нагрузку. У вас этого нет. Попробуйте Parallel.ForEach, который использует пул потоков и сам разруливает оптимальное количество параллельных действий.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39804840
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123iskatelsqlНахрена оно надо если не надо?некоторые дома мусор не разделяют на стекло, пластик и... мусор.
Как им объяснить что на сегодняшний текущий момент надо разделять?
Никак.
iskatelsqlВсе это лирика
Дисциплина такая есть - архитектура. Паттерны всякие))
Но если ты не чувствовал необходимость, значит тебе не надо.
Есть высокотехнологичные компании а ля Маск, где это надо.
Удачи!какой в этом смысл, если мусорка в итоге одна? думаю многие бы разделяли, если бы после этого можно было его выкинуть раздельно
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39804863
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesесли мусорка в итоге одна?уже не одна.
В отсталой неразвитой стране, районе, городе, квартире - одна.
...
Рейтинг: 0 / 0
Почему Task - и так странно запускаются.
    #39805013
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAУх ты, есть чем гордиться и внукам рассказывать
Я вчера немного выпил, и возникла острая необходимость поговорить, но в 3 часа ночи нескем. Вот решил написать :)
Arm79Увидели в эксплорере?
Ну в тотал коммандере жамкал кнопку обновить... Примитивно конечно, зато свою задачу тест выполнил - стало понятно что они стартуют не одновременно.
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему Task - и так странно запускаются.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]