2009-06-28 18 views
0

J'ai une application WinForms dans laquelle je souhaite effectuer des opérations de longue durée, par ex. Imaginez Explorer en copiant 2 gros fichiers en parallèle. Pour chacune de ces opérations de longue durée, je démarre un thread d'interface utilisateur distinct (qui inclut des messages de pompage/Application.Run/Application.ExitThread) où je crée une instance du IProgressDialog. Je me demande - en raison de l'affinité des threads de Windows - est-il légal d'empaqueter le handle du formulaire principal dans un HandleRef et de le passer en tant que propriétaire/parent de la boîte de dialogue de progression? Je n'accède pas au handle de la fenêtre principale à partir du thread d'interface utilisateur secondaire (pas d'exceptions d'inter-thread en mode débogage), en le transmettant uniquement à la fonction native.Fenêtre parent et affinité de threads

Merci.

Répondre

0

Oui, c'est bien. Windows autorise les fenêtres de différents threads à avoir une relation parent/enfant.