Je cherche un cadre de threading pour éviter de l'écrire à partir de rayures. En particulier les tâches de mise en file d'attente et de synchronisation sont ce dont j'ai besoin. Je connais OmniThreadLibrary qui est génial mais qui n'est pas compatible avec D7. Des recommandations?Threading Framework pour Delphi 7 - tout?
Répondre
Donc, vous voulez rester avec Delphi 7, et vous voulez une bonne bibliothèque de threads, mais vous ne voulez pas l'écrire à partir de zéro.
Un jour, vous allez mettre à jour, j'en suis sûr. Alors pourquoi opter pour une médiocre librairie de threads que vous devrez changer quand vous le ferez.
Ma recommandation serait de prendre OmniThreadLibrary, et essayez de le porter pour travailler avec Delphi 7. Ensuite, vous aurez un chemin de mise à niveau.
Sinon, essayez l'une des recommandations: How Do I Choose Between the Various Ways to do Threading in Delphi?
La décision de rester avec D7 ou non n'est pas à ma hauteur, malheureusement :(Sinon j'aurais mis à jour à Unicode, version générique comme D2010 :) En tout cas merci pour le lien, je dois l'avoir manqué pour une raison inconnue. – migajek
Je ne suis pas à la traîne quand je dis cela, mais comment TThread au sujet? Bien qu'il ne s'agisse pas d'un framework, cela rend certainement le travail avec Windows moins pénible. Sérieusement, c'est très bien fait.
Voici quelques liens pour vous aider à démarrer:
Un cadre de filetage pourrait vous faire économiser des mois de travail à long terme, afin en fonction de l'importance de l'avoir, vous pouvez peut-être l'utiliser comme raison de mise à niveau. Et toute personne qui suggère que TThread et d'autres primitives de synchronisation Windows sont tout ce dont vous avez besoin n'a évidemment pas écrit beaucoup de code threadé. J'estime que j'ai passé au moins 3 à 6 mois juste pour développer mon propre framework de threading pour rendre les choses plus faciles, et il a facilement "payé" pour lui-même.
"Et toute personne qui suggère que TThread et d'autres primitives de synchronisation Windows sont tout ce dont vous avez besoin n'a évidemment pas écrit beaucoup de code fileté." C'est vrai, c'est comme demander pourquoi la VCL est nécessaire quand tout peut facilement être fait en utilisant les appels API WIN32. – mghie
La question n'est pas seulement si les apis de base de Windows sont suffisants, la question est également si vous pouvez voir un cadre de thread séparément du cadre d'application pour la classe d'applications que vous ciblez. J'ai quelques doutes à ce sujet. –
À mon humble avis, le cadre de filetage devrait faire partie intégrante du cadre d'application.Je cible des applications/systèmes de type service qui sont presque par définition des systèmes multi-threads/distribués, ainsi mon framework de threading et mon framework de communication sont étroitement intégrés de sorte que le passage de messages entre threads est identique au passage de messages entre applications. – Misha
File d'attente: 'PostMessage',' QueueUserWorkItem'. Synchronisation: 'Synchronize',' WaitForSingleObject'. Que recherchez-vous d'un "framework" que l'OS et le RTL ne fournissent pas déjà? –
Rob, jetez un oeil à OmniThreadLibrary et la façon dont il simplifie le filetage :) – migajek
@migajek: Eh bien, personnellement, j'ai tendance à trouver des choses de bas niveau plus faciles à comprendre. Les principes sont simples. –