[WPF] Multithreading with BackgroundWorker

Anche se ho già postato sull’argomento, ci ritorno su per fissare bene a mente alcuni concetti:

  1. Un’applicazione WPF parte inizialmente con due thread: quello dedicato alla User Interface (detto anche thread principale dell’applicazione) e quello relativo al rendering, che ha una priorità più alta. Ne consegue che le animazioni continueranno ad aggiornare l'interfaccia utente indipendentemente dalle operazioni eseguite dall'utente con il mouse.
  2. Se si vuole scrivere applicazioni WPF che mantengano una continua reattività alle azioni dell’utente, ogni attività che può durare più di 30 millisecondi (!!!) DEVE essere spostata dall’ UI thread a un “working thread”;
  3. Scrivere applicazioni multi-threaded non è per nulla difficile, se:

La classe BackgroundWorker fornisce tutto il necessario per eseguire attività in background mantenendo un canale di comunicazione con il thread chiamante, per poter ricevere aggiornamenti, stato di avanzamento e completamento del lavoro dal working thread, e al contempo poter richiedere al working thread l’interruzione del lavoro in corso;

Da notare che sono tutti concetti arcivecchi e stranoti. Ahimé non per me, che fino a ieri gestivo tutto dalla UI thread!

posted @ giovedì 22 gennaio 2009 20:39

Print
Comments have been closed on this topic.
«aprile»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011