簡體   English   中英

我應該在離開方法之前將com對象設置為null嗎

[英]Should I set com objects to null before leaving a method

我有一個我在c#中引用的vb6對象,即Process,它具有一組操作。

我有方法

public double GetWidth(Process process, String operationName)
{
   Operation operation=process.GetOperation(operationName);
   return operation.GetValue("Width");
}

退出功能之前,我是否需要將operation設置為null? 我不想處理進程或其中包含的對象,但是我不確定在最終需要處理進程時操作實例是否會引起該問題。

附帶說明一下,如果需要,我該如何處置com對象?

退出功能之前,我是否需要將operation設置為null?

不,你不會。 當方法存在時,即使不將其設置為null, operation變量也將超出范圍。

從托管語言使用的COM對象在由垃圾回收器最終確定后會自動處理。 這意味着,當沒有人持有對COM對象的引用時,該對象將在一段時間后釋放(取決於垃圾收集器決定何時插入並最終確定該對象)。

但是,如果要立即釋放COM對象,則可以調用Marshal.ReleaseComObject 您可能需要閱讀此方法,以了解何時應使用它。

您想要使用Marshal.ReleaseComObject的唯一原因是該對象擁有非常稀缺的資源,您無須等待垃圾回收器為您釋放它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM