powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему Task - и так странно запускаются.
25 сообщений из 38, страница 1 из 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
25 сообщений из 38, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему Task - и так странно запускаются.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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