gpt4 book ai didi

swing - Clojure 代理 : rate limiting?

转载 作者:行者123 更新时间:2023-12-04 18:22:47 25 4
gpt4 key购买 nike

好的,所以我有这个小procedural SVG editor在 Clojure 中。

它有一个代码 Pane ,用户可以在其中创建生成 SVG 文档的代码,以及一个预览 Pane 。每当代码更改时,预览 Pane 都会更新。

现在,在文本更改事件中,代码在 UI 线程(Ewwwww!)上重新编译,并且预览 Pane 更新。编译步骤应该是异步进行的,代理似乎是解决这个问题的好方法:要求代理在更新时重新编译代码,并将结果传递给图像 Pane 。

我还没有使用代理,我不知道它们是否与隐式队列一起使用,但我怀疑是这样。就我而言,我对计算“中间”步骤的兴趣为零(想想快速击键:如果击键发生在重新编译开始之前,我只想放弃重新编译)——即我想要一个 send覆盖任何挂起的代理计算。

我该如何做到这一点?有什么提示吗?甚至是代码示例?我的胡言乱语还有意义吗?

谢谢!

最佳答案

您描述了一个更多地处理执行流控制而不是共享状态管理的问题。因此,您可能想暂时离开 STM 并查看 future : 它们仍然作为代理在线程池中执行,但可以通过调用 future-cancel 来停止它们而不是代理。 ,并使用 future-cancelled? 检查它们的状态.

没有强有力的保证 future 正在执行的线程can be effectively stopped .尽管如此,您的代码将能够尝试取消 future ,并继续安排下一次重新编译。

关于swing - Clojure 代理 : rate limiting?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10323313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com