我們正在與第三方遺留系統一起工作,該系統需要對某些拆除邏輯具有線程關聯性。我們還在IIS內部託管了一個WCF服務,在重載的情況下,我們會無條件地卸載我們的應用程序域。在這些情況下,它會落到做清理的關鍵終結器上。不幸的是,在終結器中沒有線程關聯,第三方系統死鎖。 所以大致爲: public class FooEnvironment : CriticalFinalizerObject, IDispos
GC.SuppressFinalize與可正常不可終結對象相同的可終止對象?下面的代碼似乎證明他們區別對待,無論是在.NET 2和4: class Class1 {
public Class1()
{
GC.SuppressFinalize(this);
}
//~Class1() { }
}
class Program
{
破壞者是奇怪。我試圖通過使用'智能'引用管理來消除使用一次性模式的需要,確保垃圾收集器可以在正確的時間收集對象。在我的一個析構函數中,我不得不等待來自另一個對象的事件,我注意到它沒有。應用程序簡單地關閉,析構函數在執行過程中被終止。 我希望一個析構函數總是被允許完成運行,但是如下面的測試表明這是不正確的。 using System;
using System.Diagnostics;
usin
預填充表單我有一個大的形式,在它的時間,日期,選擇和的EntityType領域。表單沒有鏈接到實體,但它包含來自其他實體的字段。換句話說,我在FormType的OptionsResolver中沒有data_class。 這是我的formtype:(示出爲簡單起見只是一個場) public function buildForm(FormBuilderInterface $builder, array