第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 C# 中調(diào)用 Dispose 時不調(diào)用 C++/CLI 析構(gòu)函數(shù)

在 C# 中調(diào)用 Dispose 時不調(diào)用 C++/CLI 析構(gòu)函數(shù)

C#
炎炎設(shè)計 2023-05-13 16:10:06
所以我在 C# 對象中保存了一個 C++/CLI 對象。我在我的 C++/CLI 對象上調(diào)用 dispose,我在 C++/CLI 析構(gòu)函數(shù)和終結(jié)器中都有一個斷點。我知道 .NET 應(yīng)該為 CLI 對象自動生成一個 Dispose 并將析構(gòu)函數(shù)放在那里,但我在析構(gòu)函數(shù)中的斷點只是沒有被擊中。有人能解釋一下我的情況嗎,因為我找不到任何關(guān)于這種行為的文件。C#public void Dispose(){    foreach (var wrapper in m_items)    {        var disposable = wrapper.Data as IDisposable;        if (disposable != null)        {            disposable.Dispose();        }    }}C++/命令行界面public ref class ClassA: System::IDisposable {...    ClassA::~ClassA()    {        // Clean up code    }    ClassA::!ClassA()    {        // Clean up code    }}如果這個問題已經(jīng)得到回答,我深表歉意,但我已經(jīng)嘗試過,但在堆棧溢出時找不到它。
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗 獲得超2個贊

Ahhh 找到了原因,即使我在 Visual Studio 中關(guān)閉了優(yōu)化,它也會自動將我的析構(gòu)函數(shù)優(yōu)化為我在析構(gòu)函數(shù)中進(jìn)行的第一個函數(shù)調(diào)用。

因此,即使斷點看起來有效,我也不得不在我的其他函數(shù)中放置一個斷點以獲取調(diào)用堆棧。(有趣的一點是調(diào)用堆棧直接從 Dispose(bool) 轉(zhuǎn)到我的函數(shù)并跳過了析構(gòu)函數(shù))


查看完整回答
反對 回復(fù) 2023-05-13
  • 1 回答
  • 0 關(guān)注
  • 130 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號