为什么clojure-clr可以使用Console / WriteLine但不能使用任务/延迟

时间:2018-02-22 08:31:31

标签: clojure clojureclr

我想尝试clojure-clr

这个程序运行正常:

(import [System])
(defn -main [& args]
 (Console/WriteLine "Hello, World!"))

但是当我想使用Task类时:

(import [System.Threading.Tasks])
(import [System])

(defn -main [& args]
 (Task/Delay 1))

我收到错误:System.InvalidOperationException:无法找到静态字段:延迟

但在这种情况下,任务/延迟与Console / WriteLine

相同

我不知道为什么

1 个答案:

答案 0 :(得分:2)

第一个有效,因为默认情况下会加载System

尝试导入静态:

user=> (import (System.Threading.Tasks Task))
user=> (Task/Delay 1)
#object[DelayPromise 0x1554b35 "System.Threading.Tasks.Task+DelayPromise"]

或使用完全限定名称

user=> (System.Threading.Tasks.Task/Delay (TimeSpan/FromSeconds 10))
#object[DelayPromise 0x223ef57 "System.Threading.Tasks.Task+DelayPromise"]