0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 41
1
.NET 4.x

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

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

Author24 — интернет-сервис помощи студентам
Помогите разобраться с связыванием задач.
Почему при пошаговом выполнении программы, 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2018, 20:38
Ответы с готовыми решениями:

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

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

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

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

5
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
09.09.2018, 20:46 2
Лучший ответ Сообщение было отмечено 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  [ТС] 3
Хм, интересно. А почему? Я просто прохожу эту тему и там был такой пример, а объяснений не счет этого не было.
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
09.09.2018, 20:56 4
Цитата Сообщение от 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  [ТС] 5
Спасибо за помощь)
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
09.09.2018, 21:03 6
Progerpro, эта статья меня в своё время шокировала:
https://msdn.microsoft.com/ru-... 91977.aspx
1
09.09.2018, 21:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.09.2018, 21:03
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru