Browse Source

Merge pull request #1033 from jluce50/dev

Close thread handle after suspend/resume
Luke 10 năm trước cách đây
mục cha
commit
7958d8b380

+ 10 - 5
MediaBrowser.ServerApplication/Native/WindowsProcessManager.cs

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