Close thread handle after suspend/resume (per MSDN ms684335)

This commit is contained in:
jluce50 2015-03-03 14:07:18 -06:00
parent 6c2e01830c
commit 0be639e68a

View file

@ -29,8 +29,11 @@ namespace MediaBrowser.ServerApplication.Native
static extern IntPtr OpenThread(ThreadAccess dwDesiredAccess, bool bInheritHandle, uint dwThreadId);
[DllImport("kernel32.dll")]
static extern uint SuspendThread(IntPtr hThread);
[DllImport("kernel32.dll")]
static extern int ResumeThread(IntPtr hThread);
[DllImport("kernel32.dll")]
static extern int ResumeThread(IntPtr hThread);
[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool CloseHandle(IntPtr hObject);
public static void Suspend(this Process process)
{
@ -41,7 +44,8 @@ namespace MediaBrowser.ServerApplication.Native
{
break;
}
SuspendThread(pOpenThread);
SuspendThread(pOpenThread);
CloseHandle(pOpenThread);
}
}
public static void Resume(this Process process)
@ -52,8 +56,9 @@ namespace MediaBrowser.ServerApplication.Native
if (pOpenThread == IntPtr.Zero)
{
break;
}
ResumeThread(pOpenThread);
}
ResumeThread(pOpenThread);
CloseHandle(pOpenThread);
}
}
public static void Print(this Process process)