标签: disposing

在Swing中处理JFXPanel时出现JavaFX IllegalStateException

我刚刚遇到了JavaFX和Swing的奇怪之处.

处理已添加到JFrame或JPanel的JavaFX Panel时,重新添加新的JFXPanel将抛出IllegalStateException:"已调用Platform.exit".

在我的情况下,这是在我用JFXPanels删除了一些JPanels然后尝试重新添加它们之后发生的.

java swing javafx disposing illegalstateexception

11
推荐指数
1
解决办法
3046
查看次数

将IDisposable作为参数传递

将IDisposable作为参数传递给方法并将其置于该方法中是一种好习惯.当你必须使用多个线程时,这是不可避免的.好吧,最佳实践说主人(来电者)应该处理它.

例如

public void MyMethod(MyClass reader){
    using(reader){
        //some code
    }
}
Run Code Online (Sandbox Code Playgroud)

如果所有者(创建线程)不再存在怎么办?例如

interface IReader : IDisposable {
    string Read();
}

public class MyReader : IReader {

    public string Read()
    {
        return "hellow world";
    }
    public void Dispose()
    {
        //dispose code
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里你会发现问题......

public void Start() {
    MyReader[] readerSet = new MyReader[5];
    for (int i = 0; i < readerSet.Length; i++) {
        readerSet[i] = new MyReader();
    }
    foreach (IReader reader in readerSet) {
        ThreadPool.QueueUserWorkItem(new WaitCallback(Run), reader);
    }
    //exit after creating …
Run Code Online (Sandbox Code Playgroud)

.net methods idisposable parameter-passing disposing

7
推荐指数
1
解决办法
1351
查看次数

匿名事件处理程序和处理

我有一个关于匿名事件处理程序的相当简短的问题:

这是我的代码:

public void AddTestControl(Control ctrl)
{
    ctrl.Disposed += (o, e) => { RemoveTestControl(ctrl); };
    ctrl.SomeEvent += _Control_SomeEvent;
}

public void RemoveTestControl(Control ctrl)
{
    ctrl.SomeEvent -= _Control_SomeEvent;
}
Run Code Online (Sandbox Code Playgroud)

此代码是否正常,或者是否应重写代码以删除Disposed Event Handler?像这样的东西:

public void AddTestControl(Control ctrl)
{
    ctrl.Disposed += _Control_Disposed;
    ctrl.SomeEvent += _Control_SomeEvent;
}

public void RemoveTestControl(Control ctrl)
{
    ctrl.Disposed -= _Control_Disposed;
    ctrl.SomeEvent -= _Control_SomeEvent;
}
Run Code Online (Sandbox Code Playgroud)

c# disposing

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

老一代与终身一代的区别

现在我试图理解java垃圾收集的基本概念.

我已经阅读了很多关于它的文章.

在某处我看到的old generation地方tenured generation.描述非常相似.

看起来其中一个是第二个进化.

您能否提供有关此topiс的更多信息?

java garbage-collection memory-management disposing

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