将IntPtr转换为IWin32Window以替换AppDomain.GetCurrentThreadId()

时间:2012-11-23 20:36:37

标签: c# winforms intptr

您好在c#WinForms中为了替换已弃用的AppDomain.GetCurrentThreadId()我必须考虑以下内容

...
[DllImport("user32.dll", SetLastError = true)]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);

private static IWin32Window _owner;
...

uint processID = 0;
IntPtr ptr =  _owner.Handle.ToPointer();
GetWindowThreadProcessId(ptr, out processID);
int replacementCurrentThreadId = processID;

除非它不起作用 - 错误是

The best overloaded method match for has some invalid arguments

Cannot implicitly convert type 'void*' to 'System.IntPtr'. An explicit conversion exists (are you missing a cast?)

我相信我有正确的方法(获取currentThreadId),但它不会我分配值 - 大概是因为它们是指针(?)任何帮助都会得到应用

0 个答案:

没有答案
相关问题