相关疑难解决方法(0)

WithEvents/Handles比Remove/AddHandler更好?

从内存的角度来看(在使用后删除添加的处理程序等),是WithEventsHandles使用的优先RemoveHandlerAddHandler

相关的Stack Overflow问题是事件处理程序和内存泄漏.

vb.net event-handling

8
推荐指数
1
解决办法
2087
查看次数

在构造函数中声明的C#对象的垃圾收集

在下面的代码中,我在类的构造函数中创建一个DispatcherTimer.没有人继续参考它.

根据我的理解,在离开构造函数的范围之后,垃圾收集器应该在一段时间后回收计时器.但这不会发生!甚至在强制进行垃圾收集之后GC.Collect()

引擎盖下发生了什么?

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        new DispatcherTimer
        {
            Interval = TimeSpan.FromMilliseconds(100),
            IsEnabled = true
        }
        .Tick += (s, e) =>
        {
            textBlock1.Text = DateTime.Now.ToString();
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# constructor garbage-collection

5
推荐指数
1
解决办法
495
查看次数

关于PropertyStore和MDI子表单

这是关于MDI设置的.net WinForm问题.

当主窗体创建MDI子窗体时,主窗体PropertyStore包含对MDI子窗体的引用.我想知道这是否会导致儿童形态即使关闭也会存活.如果是这样,处理子表格时我该怎么办才能删除此引用?

子表单由示例代码调用:

//The code is in the main form.
var f = new FormMDIChild();
f.MdiParent = this;
f.Show();
Run Code Online (Sandbox Code Playgroud)

.net memory-leaks winforms c#-3.0

3
推荐指数
1
解决办法
2648
查看次数

VB.Net处理关键字 - 我是否需要手动调用RemoveHandler?

我正在追踪某些应用程序中的内存泄漏.许多表单共享相同的拼写检查器对象,因此生活在任何单独的表单中.我知道如果没有正确删除处理程序事件,这可能是内存泄漏的原因.

AddHandler和RemoveHandler对我有意义,因为很明显如果调用了AddHandler,那么应该有一个相应的RemoveHandler.但是,Handles关键字会自动为您删除处理程序吗?

Private Sub spellingContextMenu_Popup(ByVal sender As Object, ByVal e As System.EventArgs) Handles spellingContextMenu.Popup
Run Code Online (Sandbox Code Playgroud)

在上面,如果spellingContextMenu存在很长时间但表单死了,那么应该手动删除处理程序吗?

Microsoft自己的页面没有提供有关此http://msdn.microsoft.com/en-us/library/6k46st1y.aspx#feedback的指导

.net vb.net

2
推荐指数
1
解决办法
723
查看次数