好的,所以我在 Clojure 中有这个小的程序 SVG 编辑器。
它有一个代码窗格,用户可以在其中创建生成 SVG 文档的代码,以及一个预览窗格。每当代码更改时,预览窗格都会更新。
现在,在文本更改事件中,代码在 UI 线程(Ewwwww!)上重新编译,并且预览窗格更新。编译步骤应该是异步进行的,代理似乎是解决这个问题的好方法:要求代理在更新时重新编译代码,并将结果传递给图像窗格。
我还没有使用代理,我不知道它们是否与隐式队列一起使用,但我怀疑是这样。就我而言,我对计算“中间”步骤的兴趣为零(想想快速击键:如果击键发生在重新编译开始之前,我只想放弃重新编译)——即我想要send
覆盖任何待处理的代理计算。
我该如何做到这一点?有什么提示吗?甚至是代码示例?我的胡言乱语还有意义吗?
谢谢!