Как получить стабильный, быстрый интерфейс с использованием потоков? - PullRequest
3 голосов
/ 07 мая 2010

Я недавно смотрел это видео в Google Chrome с большим интересом.Это объясняет, что Google Chrome использует один поток для ввода-вывода, один для открытия файлов и один для межмодульной связи.

Я думаю, что я могу использовать что-то подобное для моего собственного - в настоящее время довольно грязного - приложения.

Интересно, были ли какие-нибудь хорошие статьи о передовых практиках или шаблонах для такого многопоточного разделения задач?

Ответы [ 2 ]

4 голосов
/ 07 мая 2010

Каждый раз, когда у вашего приложения есть задачи, которые можно разделить на отдельные группы, он является кандидатом на многопоточность. Имейте в виду, что это опасная игра - для каждой статьи, которую вы можете найти о преимуществах, есть две о укушении многопоточной реализацией - она ​​может создавать ошибки, которые возникают только в определенных конфигурациях (на компьютерах пользователей), или, что еще хуже, не может быть продублирован в отладчике, потому что достаточно замедлить выполнение, чтобы ошибка не появлялась (условия гонки печально известны этим поведением).

Помимо этого предупреждения, многопоточность может значительно повысить как реальную, так и воспринимаемую производительность вашего приложения. Они специфичны для .NET, но дают общий пример, объясняющий преимущества фоновых потоков и поддерживающий отзывчивость вашего пользовательского интерфейса:

0 голосов
/ 08 мая 2010

Если вы используете .NET, класс ThreadPool является хорошей отправной точкой, которая управляет некоторыми (но не всеми) тонкостями многопоточности.

См. Также тему Threads и Threading на MSDN для обсуждения плюсов и минусов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...