Вопрос по Курсу: "Параллельное программирование с использованием MS VisualStudia 2010". При компиляции Самостоятельного задания (одновременная отрисовка прямоугольников, эллипсов и выдача в текст-бокс случайного числа) среда предупреждает: suspend - устаревшая команда; примените monitor, mutex и т.п. Создаётся впечатление, что Задание создано в более поздней среде, чем VS 2010. |
Опубликован: 23.01.2013 | Уровень: для всех | Доступ: платный | ВУЗ: Томский политехнический университет
Самостоятельная работа 9:
Отладка многопоточного приложения
< Самостоятельная работа 8 || Самостоятельная работа 9 || Самостоятельная работа 10 >
Аннотация: В данном практическом занятии будет рассмотрен процесс отладки многопоточного приложения с использование окна Threads.
- Создадим новое консольное приложение и назовем его "ThreadsDebugApplication":
- Добавим в созданное приложение следующий код:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace ThreadsDebugApplication { class Program { static void Main(string[] args) { Thread t1 = new Thread(new ThreadStart(Hello)); t1.Name = "Thread 1"; Thread t2 = new Thread(new ThreadStart(World)); t2.Name = "Thread 2"; t1.Start(); t2.Start(); Console.ReadLine(); } static void Hello() { Console.Write("Hello "); Thread.Sleep(10000); } static void World() { Console.WriteLine("world!"); Thread.Sleep(10000); } } }
- Установим точку останова (Breakpoint) в самое начало метода Main() и запустим отладку с помощью клавиши F5:
- Откройте окно отладки потоков из меню "Debug" пункт меню "Threads" или с помощью сочетания клавиш "Ctrl+Alt+H":
В появившемся окошке будут отображаться все текущие рабочие потоки:
- С помощью клавиши "F10" доберитесь до строчки с кодом Console.Readline(), как показано на рисунке:
В окне отладки потоков можно увидеть два созданных потока:
- Чтобы перейти на место выполнения конкретного потока, дважды щелкните левой кнопкой мыши на нужном потоке:
- Для того что бы заморозить выполнение потока, щелкните на нужном потоке выберите пункт "Freeze", в нашем случае это поток с именем "Thread1":
После выполнения программы выведется результат без "замороженного" потока:
- Для завершения процесса отладки используется пункт из меню "Debug" - "Stop Debugging" или сочетание клавиш "Shift+F5":
< Самостоятельная работа 8 || Самостоятельная работа 9 || Самостоятельная работа 10 >