我想盡可能接近實時,所以我的意圖是讓代碼中最關鍵的部分不受管理(我不希望GC阻止執行)。所以我試過這個:本機代碼在C++/CLI DLL
class Native
{
public:
int GetValue()
{
return 1;
}
};
ref class Managed
{
public:
void Test()
{
Native n;
Console::WriteLine(n.GetValue());
}
};
ILDASM顯示編譯爲IL的Native :: GetValue。是否可以保持這個類/功能不受管理?是一個專門的非託管dll唯一的方法來做到這一點?
實際上,有一種方法可以在同一個DLL中合併託管代碼和非託管代碼。 –
是的,但生成的程序集將被管理,並由CLR處理,這正是我以前想要避免的。這正是C++ - CLI的用處:將一些現有的本地代碼輕鬆移植到託管平臺。 –
正如之前所說,由於性能方面的考慮,我只需要保留一些類/函數不受管理。 –