Какие потоки используются в приложении WPF? - PullRequest
0 голосов
/ 30 июня 2018

Я хочу понять использование потоков в различных типах приложений, и я немного удивлен, что WPF-приложения имеют еще 2 потока (помимо потока пользовательского интерфейса), которые Я не ожидал.

Я выполнил следующие действия:

  1. создать новое приложение WPF
  2. нажмите F5, чтобы запустить его в режиме отладки
  3. перейти к Debug -> Windows -> Parallel Stacks
  4. нажмите Break All кнопку
  5. исследовать Parallel Stacks окно

Я ожидал получить один поток - поток пользовательского интерфейса, но вместо этого получил 3 потока:

WPF default threads

Самым левым потоком является поток пользовательского интерфейса - который я ожидал все время, но Какие еще два потока используются для ? Я их не создавал - я только что сделал WPF-приложение без изменений - без изменений исходного кода, созданного мастером нового проекта.

Также как использовать функции , обозначенные красными стрелками на скриншоте выше:

  1. ProtocolHandler.SendThread
  2. ProtocolHandler.ReadThread

Я искал документацию, но не нашел много информации об этом. Я также пытался использовать их в коде позади, но нет никаких операторов использования для добавления - они просто не распознаются.

1 Ответ

0 голосов
/ 01 июля 2018

Полное пространство имен класса ProtocolHandler равно Microsoft.VisualStudio.DesignTools.WpfTap.Networking. Как видно из названия, он используется инструментами отладки дизайна из Visual Studio (вероятно, той, которая позволяет проверять / изменять пользовательский интерфейс во время выполнения).

Если вы отключите эти инструменты в Visual Studio (Инструменты -> Параметры -> Отладка -> Снимите флажок «Включить инструменты отладки пользовательского интерфейса для XAML»), вы увидите, что два дополнительных потока больше не будут запускаться.

...