c# - 确定另一个进程中的 UI 线程

标签 c# user-interface

是否可以在 C# 中确定由我的进程打开的另一个应用程序中的哪个线程是 UI 线程?

最佳答案

@HansPassant 已经 answered it on MSDN forums :

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);

关于c# - 确定另一个进程中的 UI 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14110569/

相关文章:

c# - 带 Linq 的中继器 - 一个项目有许多子项目

c# - 在 ASP.NET Web 应用程序中禁用 Razors 默认 .cshtml 处理程序

java - 如何使用 Java Swing 创建图像映射?

iphone - 如何动态添加一个 UIView

objective-c - 如何帮助防止我的用户在 Cocoa 中意外发起拖动?

java - 为什么我的线程没有启动?

c# - DLL 上的 STAThead 用于与 Task/BackgroundWorker 一起使用

c# - 从 .Net WinForms 应用程序以编程方式刷新浏览器页面

c# - 用户欺骗域名

java - GUI 随单选按钮选择而变化