19 потоков для приложения WPF

Вы можете моделировать продолжать использование goto и маркируете .

DECLARE
   done  BOOLEAN;
BEGIN
   FOR i IN 1..50 LOOP
      IF done THEN
         GOTO end_loop;
      END IF;
   <>  -- not allowed unless an executable statement follows
   NULL; -- add NULL statement to avoid error
   END LOOP;  -- raises an error without the previous NULL
END;

12
задан Jamie Hutton 19 December 2011 в 15:01
поделиться

1 ответ

Во-первых, это не 19.

При запуске команды «Hello, World!» Приложение WPF, я вижу 10 потоков в диспетчере задач. При запуске того же приложения с использованием отладчика Visual Studio оно использует 19. Итак, во-первых, вычтите 9 из них, добавленных в качестве накладных расходов отладчика.

Теперь о 10 .

Согласно статье журнала MSDN Magazine «Создавайте больше отзывчивых приложений с помощью Диспетчера» , WPF начинается с двух потоков:

Все приложения WPF начинаются с два важных потока, один для рендеринга и один для управления пользовательским интерфейсом . Поток рендеринга это скрытый поток, который работает в фон, поэтому единственный поток, который вы обычно имеете дело с пользовательским интерфейсом thread.

Но согласно этой статье , есть много основных потоков во всех управляемых приложениях, WPF или нет:

Существуют разные типы .NET потоки: финализатор, сборщик мусора, отладчик, таймер, пул потоков, первичный и фоновые темы. Но не все управляются потоки, относящиеся к .NET.

Начиная с два из WPF, добавьте GC и финализатор, чтобы получить до четыре . Добавьте поток отладчика (он есть у всех управляемых приложений, даже если они не отлаживаются), чтобы получить пять . Добавьте таймер, чтобы получить шесть .

И, подключив отладчик к моему приложению WPF после его запуска вне VS, я вижу, что в пуле потоков есть два рабочих потока. Это скорее всего минимум. Это увеличивает мое приложение до восьми .

Есть два, которые я не могу точно учесть, но они, вероятно, являются потоками COM для взаимодействия (они определенно не являются управляемыми потоками). Вторая статья , на которую я ссылался, обсуждает больше из них.

Но настоящая мораль истории здесь - не беспокойтесь о них. Если ванильное "Hello, World!" приложение использует 10, это ваш базовый уровень. Беспокойтесь только о потоках, которые вы создаете сверх этого минимума.

18
ответ дан 2 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: