1. 程式人生 > >對控制代碼的再認識

對控制代碼的再認識

控制代碼是操作一個核心物件的鑰匙”。也就是說:控制代碼並非核心物件本身。聽起來似乎是廢話,不過今天是通過程式碼深刻體會了一下。

我用C#的Process類獲取到了程序的控制代碼,也就是Handler屬性。我把這個Handler屬性儲存了下來,後面需要結束程序時TerminateProcess(handler); 但返回錯誤資訊:“控制代碼無效”。接下來我發現,每次用Process類獲取到的同一程序物件,其Id是相同的,Handler則每次都不同。經過考慮想到:由於先前我儲存的只是Handler的值,屬於值傳遞,因此process物件並未引用,於是該物件隨後被系統回收,先前的handler自然失效。於是我修改了程式碼,改保Handler的值改為儲存Process物件,這樣在需要使用Handler時就不會爆出控制代碼無效異常了(當然前提是這個程序還在)