相关疑难解决方法(0)

每个优秀的.NET开发人员应该能够回答的问题?

我的公司即将雇用.NET开发人员.我们在各种.NET平台上工作:ASP.NET,Compact Framework,Windowsforms,Web Services.我想编制好的问题列表/目录,这是一种最低标准,以确定申请人是否有经验.所以,我的问题是:

您认为一个优秀的.NET程序员应该回答什么问题

我也将它视为自己的清单,以便了解我自己的赤字在哪里(有很多......).

替代文字

*更新:它想明确我们不仅仅测试.NET知识,解决问题的能力和一般编程技能对我们来说更为重要.

.net

246
推荐指数
12
解决办法
52万
查看次数

如何让.NET积极收集垃圾?

我有一个用于图像处理的应用程序,我发现自己通常会分配4000x4000 ushort大小的数组,以及偶尔浮点数等.目前,.NET框架在这个应用程序中往往会随机崩溃,几乎总是出现内存不足错误.32mb不是一个巨大的声明,但如果.NET碎片化内存,那么这种大型连续分配很可能不会像预期的那样运行.

有没有办法告诉垃圾收集器更积极,或碎片整理内存(如果这是问题)?我意识到有GC.Collect和GC.WaitForPendingFinalizers调用,我通过我的代码非常自由地散布它们,但我仍然得到错误.这可能是因为我正在调用使用本机代码的dll例程,但我不确定.我已经查看了那个C++代码,并确保我声明删除的任何内存,但我仍然得到这些C#崩溃,所以我很确定它不存在.我想知道C++调用是否会干扰GC,使其留下内存,因为它曾经与本机调用交互 - 这可能吗?如果是这样,我可以关闭该功能吗?

编辑:这是一些非常具体的代码,将导致崩溃.根据这个问题,我不需要在这里处理BitmapSource对象.这是天真的版本,没有GC.Collects.它通常在撤销过程的迭代4到10上崩溃.这段代码替换了空白WPF项目中的构造函数,因为我使用的是WPF.由于我在下面对@dthorpe的回答中解释的限制以及此SO问题中列出的要求,我对bitmapsource做了一些古怪的事情.

public partial class Window1 : Window {
    public Window1() {
        InitializeComponent();
        //Attempts to create an OOM crash
        //to do so, mimic minute croppings of an 'image' (ushort array), and then undoing the crops
        int theRows = 4000, currRows;
        int theColumns = 4000, currCols;
        int theMaxChange = 30;
        int i;
        List<ushort[]> theList = new List<ushort[]>();//the list of images in the undo/redo stack
        byte[] displayBuffer = null;//the buffer used as a …
Run Code Online (Sandbox Code Playgroud)

.net c# garbage-collection memory-management

40
推荐指数
2
解决办法
8342
查看次数

垃圾收集与非垃圾收集编程语言

因此,如果我理解得很好,垃圾收集会自动释放程序不再使用的对象.像java中的垃圾收集器.

我听说像C这样的语言不支持垃圾收集,程序可能会有内存泄漏并随后耗尽内存.

那么程序员在不支持垃圾收集的C语言中所犯的错误是什么?我猜不会在它们不再使用后解除分配对象.但是由于缺少垃圾收集器,这些是我们可以做的唯一错误吗?

c java garbage-collection

14
推荐指数
3
解决办法
4265
查看次数

标签 统计

.net ×2

garbage-collection ×2

c ×1

c# ×1

java ×1

memory-management ×1