Macros ImageJ宏-选择图像(id)会导致ImageJ崩溃

Macros ImageJ宏-选择图像(id)会导致ImageJ崩溃,macros,crash,imagej,Macros,Crash,Imagej,我在使用ImageJ宏时遇到问题。函数selectImage(id)和selectWindow(name)导致ImageJ完全崩溃,甚至我不得不完全重置Unity(我在Ubuntu 12.04上),因为所有GUI输入都会冻结 发生这种情况的宏相当长。当我在简短而简单的宏中使用上述函数时,什么都不会发生。我首先打开图像,然后执行数千次操作,然后请求窗口开关。那时候整个东西都冻结了 是否有人对这些问题足够熟悉,从而提出可能存在的问题 我在写问题时找到了答案。问题是我在循环中调用了selectImag

我在使用ImageJ宏时遇到问题。函数selectImage(id)和selectWindow(name)导致ImageJ完全崩溃,甚至我不得不完全重置Unity(我在Ubuntu 12.04上),因为所有GUI输入都会冻结

发生这种情况的宏相当长。当我在简短而简单的宏中使用上述函数时,什么都不会发生。我首先打开图像,然后执行数千次操作,然后请求窗口开关。那时候整个东西都冻结了


是否有人对这些问题足够熟悉,从而提出可能存在的问题

我在写问题时找到了答案。问题是我在循环中调用了selectImage()和selectWindow(),这导致每秒有数千个窗口切换请求。我想Unity不能很好地处理这个问题


一句话:不要在长循环中调用这些函数

如果在宏前面加前缀,则ImageJ将在后台执行宏,直到宏完成(或直到调用
setBatchMode(false)
为止),才会显示或更新任何窗口。这将防止
selectWindow
selectImage
调用实际将窗口带到前台,并在您的情况下使Unity崩溃。你的宏也会快几个数量级