J'écris une bibliothèque réseau à laquelle un utilisateur peut passer un pointeur de fonction pour l'exécuter sur certains événements réseau. Afin de garder la boucle d'écoute de retarder l'application du développeur, je passe le gestionnaire d'événements à un thread. Malheureusement, cela crée un peu de mal de tête pour gérer les choses d'une manière sûre pour les threads. Par exemple, si le développeur passe une fonction qui appelle les éléments de l'application Windows :: Forms, une exception InvalidOperationException sera lancée.Pointeurs de fonctions thread-safe en C++
Existe-t-il de bonnes stratégies pour gérer la sécurité des threads?
Le développeur ne devrait-il pas être responsable de s'assurer qu'il ne change pas de composant tant qu'il n'est pas sur le fil de l'événement? –
Que voulez-vous dire par "sécurité des threads" dans la question - vous voulez spécifiquement un moyen de laisser une fonction de rappel modifier les éléments de formulaires de l'autre thread? "Comment écrire du code multi-thread?" L'OMI n'est pas vraiment assez spécifique pour répondre. –