Cette question est assez générale, mais je suis un programmeur débutant-intermédiaire qui vient de terminer une classe d'applications et l'un de ses sujets était le multithreading. Nous avons fait plusieurs devoirs qui impliquaient de créer des interfaces graphiques avec des boutons qui démarreraient un long processus (lecture d'une base de données, etc.).Exemples de performances médiocres pouvant être corrigées par multithreading
Dans ces cas, nous créerions des versions mono et multithread dans lesquelles la tâche d'effectuer le traitement était sur un thread distinct de tout le reste, de sorte que lorsque le bouton était enfoncé, l'application ne bloquait pas.
A ma question:
Au travail aujourd'hui, je fait une recherche dans mon MS Outlook pour un mot spécifique dans l'espoir de trouver un e-mail spécifique; malheureusement le mot était commun et cent millions d'e-mails sont apparus. Il y a un bouton d'arrêt, mais l'appuyer n'a absolument rien fait ...
D'après mon expérience en classe, n'est-ce pas là un exemple où le fait de placer le processus de recherche sur son propre fil ne causerait pas le problème ci-dessus? Sûrement Microsoft ne ferait pas quelque chose de stupide comme ça ... y a-t-il une raison pour que ce ne soit pas son propre fil? Si c'est son propre thread, alors pourquoi l'application décrocherait-elle et ne répondrait pas au bouton d'arrêt? (Raisons liées au système d'exploitation?).
Tout cela était sur un système double cœur Windows XP 32 bits, si c'est pertinent. Vraiment, je veux juste mieux comprendre où le multithreading entre en jeu et comment apprendre où l'appliquer. Existe-t-il des exemples d'applications bien connues qui bénéficient clairement du multithreading? Est-il vraiment possible de distinguer clairement?
Merci!
R
"Sûrement Microsoft ne ferait pas quelque chose de stupide comme ça" ... lol, et ne m'appelle pas Shirley. – ray