相关疑难解决方法(0)

了解.NET中的垃圾收集

考虑以下代码:

public class Class1
{
    public static int c;
    ~Class1()
    {
        c++;
    }
}

public class Class2
{
    public static void Main()
    {
        {
            var c1=new Class1();
            //c1=null; // If this line is not commented out, at the Console.WriteLine call, it prints 1.
        }
        GC.Collect();
        GC.WaitForPendingFinalizers();
        Console.WriteLine(Class1.c); // prints 0
        Console.Read();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,即使main方法中的变量c1超出范围并且在GC.Collect()调用时没有被任何其他对象进一步引用,为什么它没有在那里完成?

.net c# garbage-collection

161
推荐指数
2
解决办法
5万
查看次数

本机代码,机器代码和汇编代码之间有什么区别?

我对.NET语言环境中的机器代码和本机代码感到困惑.

他们之间有什么区别?它们是一样的吗?

.net assembly bytecode machine-code

96
推荐指数
4
解决办法
4万
查看次数

C++ CLI.本机部分是用纯C++编写的,但是在CLI中编译的速度和纯本机C++一样快?

我想将音频计算委托给C++层,但是通过WPF GUI处理和编辑音频内容.

我简要介绍了C++/CLI,我想知道:

  • 我应该使用C++/CLI作为C#GUI和C++音频管理之间的中间层
  • 或者我应该简单地将我的代码放在C++/CLI中并期望它以相同的方式编译,因此效率很高.

编辑:随着火焰战可能开始.这是一个关于基准游戏的链接,它明确指出C/C++是速度获胜者.我在问:我应该在C++ Dll或C++ CLI程序集中编写C++.

c++ c++-cli

14
推荐指数
2
解决办法
5454
查看次数

标签 统计

.net ×2

assembly ×1

bytecode ×1

c# ×1

c++ ×1

c++-cli ×1

garbage-collection ×1

machine-code ×1