AppDomain.GetCurrentThreadID vs Thread.ManagedThreadID pour les appels API Windows?

Je suis en train de créer un crochet pour surveiller la position actuelle du curseur de la souris. Rien d'important, j'ai juste besoin de compter quelques pixels lors de la conception de l'interface et je voulais savoir comment créer un crochet, alors j'ai décidé d'aller pour une difficulté plutôt d'une façon saine.

J'ai trouvé un exemple de code qui déclare la fonction suivante:

 <DllImport("User32.dll", CharSet:=CharSet.Auto, _
 CallingConvention:=CallingConvention.StdCall)> _
 Public Overloads Shared Function SetWindowsHookEx _
      (ByVal idHook As Integer, ByVal HookProc As CallBack, _
       ByVal hInstance As IntPtr, ByVal wParam As Integer) As Integer
End Function

Lorsque la fonction est appelée, le code suivant est utilisé:

        hHook = SetWindowsHookEx(WH_MOUSE, _
                                 hookproc, _
                                 IntPtr.Zero, _
                                 AppDomain.GetCurrentThreadId())

Mais Appdomain.GetCurrentThreadID génère l'avertissement: ""Public Partagé Fonction GetCurrentThreadId() as Integer' est obsolète: 'domaine d'application.GetCurrentThreadId a été abandonné car il ne fournit pas un stable Id lors de la gestion des threads en cours d'exécution sur les fibres (aka léger threads). Pour obtenir un identifiant stable pour une gestion thread, utilisez la propriété ManagedThreadId sur le Fil."

J'ai essayé d'utiliser ManagedThreadID, mais qui ne fonctionne pas. L'ID de thread retourné semble être la logique ID du thread, car elle fonctionne dans la .net, plutôt que le thread Win32 identificateur.

L'appel de la fonction ith domaine d'application.GetCurrentThreadID fonctionne, mais je voudrais vraiment avoir un "identifiant stable" pour mon fils.

Quelqu'un peut m'expliquer s'il est possible d'utiliser ManagedThreadID dans ce contexte (je suppose que non) et, si non, les choses que je dois éviter pour arrêter l'AppDomain.CurrentThreadID de devenir "instable"?

Acclamations

source d'informationauteur Frosty840 | 2009-04-21