Loupe

Build 2013: Jour 3 – Windows Runtime internals: Understanding the threading model

On commence fort pour ce 3ème jour, avec une session niveau 400 qui a pour objectif, code C++ à l’appui, de nous expliquer le modèle de threading don’t on dispose dans WinRT.

WP_20130628_001

Le speaker a d’abord rappelé l’importance des threads et a expliqué comment Windows parallélise les opérations pour vous (Kernel threads, Separate process, Brokers, Async operations, etc.).

Il a ensuite continuer sur le modèle de threading de Windows:

  • UI objects live in a UI thread
  • Main UI thread lasts as long as app
  • Most other objects can be used on any thread
  • We pass out work to thread pool when needed

Ensuite, un focus a été fait sur les UI Threads, expliquant pourquoi ceux-ci sont spéciaux. Puis, nous avons eu droit à une explication sur la manière dont Microsoft a résolu les problèmes de deadlocks lorsque l’on utilise plusieurs threads.

Après différentes démonstrations, le système de threading de l’environement HTML (WinJS) a été abordé: là, tous les threads sont des threads UI et même les Web Workers sont des entités “single-threaded”!

Ce qui a été abordé pour HTML/JS l’a également été pour XAML: les évènement XAML sont délivrés dans le thread UI, il est nécessaire d’utiliser le Dispatcher pour repasser dans le thread UI, etc.

WP_20130628_005 WP_20130628_004

La session était clairement intéressante même si j’avoue avoir parfois laché le fil: c’est ça les niveaux 400 ! Smile

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus