Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 41
.NET 4.x

Последовательность задач TPL

09.09.2018, 20:38. Показов 1627. Ответов 5
Метки task, tpl (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться с связыванием задач.
Почему при пошаговом выполнении программы, id задач идут последовательно, а при обычном запуске они другие?
Также при пошаговом выполнении id первой задачи равен 1, а при обычном запуске он равен 4.
И как метод Display получает свой аргумент Task t, если при вызове мы его не передаем.
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
class Program
    {
        static void Display(Task t)
        {
            Console.WriteLine("ID задачи  - {0} ", Task.CurrentId);
            Console.WriteLine("ID предыдущей задачи  - {0}", t.Id);
            Thread.Sleep(2000);
        }
        static void Main(string[] args)
        {
            Task task1 = new Task(() =>
            {
                Console.WriteLine("ID текущей задачи - {0}", Task.CurrentId);
            });
 
            Task task2 = task1.ContinueWith(Display);
            Task task3 = task2.ContinueWith(Display);
            Task task4 = task3.ContinueWith(Display);
 
            task1.Start();
 
            task4.Wait();
            Console.WriteLine("Выполняется работа метода Main");
            Console.Read();
        }
    }
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2018, 20:38
Ответы с готовыми решениями:

C# - TPL - Ошибка
Здравствуйте! Необходимо написать простейшую программу выполняющую изменение яркости изображения с использованием технологии параллельных...

Многопоточность с TPL и PLINQ
Доброго времени суток! В поисках ответов на свои вопросы, я удачно зашёл на данный форум и посетил тему, в которой увидел отличный код,...

Граф причинно-следственных зависимостей. TPL
Здравствуйте! Мне необходимо реализовать несколько параллельно выполняющихся процессов согласно графу причинно-следственных зависимостей....

5
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
09.09.2018, 20:46
Лучший ответ Сообщение было отмечено Progerpro как решение

Решение

Progerpro, на ID задачи вообще рассчитывать нельзя. Настраивайте мышление, как будто ID у задач не существуют.

Добавлено через 2 минуты
Цитата Сообщение от Progerpro Посмотреть сообщение
Thread.Sleep(2000);
Thread.Sleep() сейчас вообще запрещено использовать. Забудьте его. Task.Delay(2000) существует.
1
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 41
09.09.2018, 20:47  [ТС]
Хм, интересно. А почему? Я просто прохожу эту тему и там был такой пример, а объяснений не счет этого не было.
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
09.09.2018, 20:56
Цитата Сообщение от Progerpro Посмотреть сообщение
И как метод Display получает свой аргумент Task t, если при вызове мы его не передаем.
В данном случае конструктор Task обеспечивает передачу параметра t.

Добавлено через 1 минуту
Progerpro, читайте нормальных авторов. Например Стивена Тауба и Стивена Клири.

Добавлено через 6 минут
Кстати, для изучения, в каком потоке сейчас выполняется метод, очень хорош Thread.CurrentThread.ManagedThreadId. В противоположность ID задачи, который ни о чём не говорит ))
1
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 41
09.09.2018, 20:56  [ТС]
Спасибо за помощь)
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
09.09.2018, 21:03
Progerpro, эта статья меня в своё время шокировала:
https://msdn.microsoft.com/ru-... 91977.aspx
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.09.2018, 21:03
Помогаю со студенческими работами здесь

Посоветуйте хорошие практикумы по решению задач на C# с разбором этих задач!
Очень нужно

TPL Task.ContinueWith - не пойму зачем она нужна
Чем вот такой вызов Task<string> t1 = new Task<string>(funcForT1); t1.Start(); Task continuationTask =...

Ошибки в файлах шаблонах header.tpl, footer.tpl
При установке нового шаблона появились косяки, а именно появились ошибки в файлах шаблонах header.tpl, footer.tpl должен по дефолту...

Несколько задач на последовательность чисел
Снова школьник нуждается в вашей помощи:) 1.Даны натуральные числа a1,a2,...,an.Указать те,у которых остаток от деления на M равен...

Подключение file.tpl в file.tpl
Здравствуйте. Искал ответ на свой вопрос, находил много ответов, но все не то, что надо... В общем в файлах с расширением .php...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru