這裏是我的場景:我有一個對其他進程執行操作的函數。它對給定進程執行操作,然後執行一些更多操作,然後撤消第一個操作。我想在每個過程中只做一次這個操作。保存進程列表
這導致我的問題:我如何保留一個進程列表來識別哪些已經被操作,哪些沒有?我正在考慮存儲進程ID,但它們是可回收的。處理手柄也是可回收的。
這裏是我的場景:我有一個對其他進程執行操作的函數。它對給定進程執行操作,然後執行一些更多操作,然後撤消第一個操作。我想在每個過程中只做一次這個操作。保存進程列表
這導致我的問題:我如何保留一個進程列表來識別哪些已經被操作,哪些沒有?我正在考慮存儲進程ID,但它們是可回收的。處理手柄也是可回收的。
沒關係,使用處理時間作爲識別我的目的過程的方法是可以接受的。如果有人想知道如何,請參閱http://msdn.microsoft.com/en-us/library/ms683223
查看此question,以及我的答案中的鏈接。其中一個討論GetProcessTimes,它會給你的過程開始的時間。
如果你堅持處理,過程對象不能被銷燬,PID不會被重新使用。
一旦進程退出,您可以通過等待手柄找到該進程,可以關閉手柄。只有這樣才能重新使用PID,但是由於您知道過程已經退出,您可以確定任何重複發生都是不同的過程。
+1非常整潔 –