是否可以在 C# 中确定由我的进程打开的另一个应用程序中的哪个线程是 UI 线程?
问问题
1016 次
1 回答
8
@HansPassant 已经在 MSDN 论坛上回答了这个问题:
using System.Diagnostics;
...
public static ProcessThread GetUIThread(Process proc) {
if (proc.MainWindowHandle == null) return null;
int id = GetWindowThreadProcessId(proc.MainWindowHandle, IntPtr.Zero);
foreach (ProcessThread pt in proc.Threads)
if (pt.Id == id) return pt;
return null;
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern int GetWindowThreadProcessId(IntPtr hWnd, IntPtr procid);
于 2013-01-01T13:21:00.193 回答