Java 如何清除macos上swt.Image的缓存?

Java 如何清除macos上swt.Image的缓存?,java,eclipse,macos,swt,Java,Eclipse,Macos,Swt,我正在使用Eclipse和SWT开发一个应用程序。 如果在mac上执行以下操作,则第二个文件的内容与第一个文件的内容相同。 这是近十年前解决的问题,与swt.GC的处置方式有关。但在我的情况下,它没有被处理 好像某个地方有个缓存,但我找不到办法把它清除掉 我的代码,简化版: Image myImg = new Image( Display.getDefault(), 100, 100 ); GC mygc = new GC( myImg ); // draw something // Sav

我正在使用Eclipse和SWT开发一个应用程序。 如果在mac上执行以下操作,则第二个文件的内容与第一个文件的内容相同。 这是近十年前解决的问题,与swt.GC的处置方式有关。但在我的情况下,它没有被处理

好像某个地方有个缓存,但我找不到办法把它清除掉

我的代码,简化版:

Image myImg = new Image( Display.getDefault(), 100, 100 );
GC mygc = new GC( myImg );

// draw something

// Saves the image to a file.
saveImage( myImg );

// draw something else on the same image.

// Saves the image to another file.
saveImage( myImg );

myImg.dispose();
mygc.dispose();
如果在保存第一个文件后,在执行额外的绘图操作之前执行此操作,则问题将得到解决:

mygc.dispose();
mygc = new GC( myImg );
但由于性能问题,我不想处理和创建新的GC。
在Windows上,它工作得非常完美。

据我所知,没有缓存。你需要给我们展示一个我们可以测试的东西。谢谢,格雷格,我会的。我觉得我提供的代码就足够了。确实有点问题: