Eclipse上有这个复选框:
首选项 - >常规 - >工作区 - >使用本机挂钩或轮询刷新
在Eclipse文档说:
如果启用此选项,则工作区资源将使用本机刷新提供程序(在Windows上)或轮询机制自动与文件系统中的相应资源同步.
从文档和复选框说明中可以看出,Eclipse使用某种操作系统挂钩来获取有关文件更改的通知.并且似乎使用轮询在Windows以外的操作系统上模拟此功能.
我的问题是:
gre*_*449 11
是的,这正是Eclipse正在做的事情.对于Mac或Linux,它目前使用轮询.
有一个扩展点org.eclipse.core.resources.refreshProviders
可用于为每个平台提供刷新代码,人们已经为Mac和Linux编写了测试插件,但它们不在产品中(请参阅https://bugs.eclipse.org/bugs/show_bug. cgi?id = 108697和https://bugs.eclipse.org/bugs/show_bug.cgi?id=237344)
对此的来源是org.eclipse.core.internal.refresh.MonitorManager
,PollingMonitor
轮询是否刷新.
org.eclipse.core.internal.resources.refresh.win32.Win32RefreshProvider
Windows是否通过JNI使用本机方法进行刷新(它仅在Windows插件中).
org.eclipse.core.internal.resources.refresh.win32.Win32Monitor
并Win32Natives
包含核心代码.
我发现选项“使用本机钩子或轮询刷新”是执行此操作的原始方式:
以前的 Eclipse 版本依赖本机刷新提供程序(在 Windows 上)或轮询机制来保持工作区与底层文件系统同步。此功能仍可通过使用本机挂钩选择刷新或在打开首选项页面首选项 > 常规 > 工作区上进行轮询来启用。
现在可以使用新的轻量级机制。工作区发现不同步的文件,例如在编辑器访问文件内容时,将自动异步刷新。如果要以这种方式刷新文件,请转到打开首选项页面首选项 > 常规 > 工作区,然后选择访问时刷新。
从现在开始,我将只在访问时使用刷新。
归档时间: |
|
查看次数: |
7495 次 |
最近记录: |