Je crée un processus à partir de .NET à l'aide de Process.Start. Le nouveau processus est une application héritée, écrite en C/C++. Pour communiquer avec lui, j'ai besoin de faire l'équivalent de PostThreadMessage à son thread primaire.Parler à un processus non géré à partir de .NET
Je serais heureux d'utiliser P/Invoke pour appeler PostThreadMessage, mais je ne vois pas comment trouver le thread principal. L'objet Process possède une collection de threads, mais le document indique que le premier élément de la collection n'a pas besoin d'être le thread principal. Les objets Thread eux-mêmes ne semblent pas indiquer s'ils sont primaires. Et bien que je puisse regarder la collection de threads immédiatement après la création du processus, ce n'est pas une garantie qu'il n'y en aurait qu'une seule.
Alors, existe-t-il un moyen pour moi de déterminer le thread principal d'un autre processus à partir de .NET, ou dois-je recourir à CreateProcess de Win32?
Merci,
Bob
Malheureusement, l'application hérité ne dispose pas de fenêtre. Et si un processus démarre plusieurs threads rapidement, leurs heures de début peuvent être les mêmes. –