为什么clojure-clr可以用Console/WriteLine却不能用Task/Delay
Why clojure-clr can use Console/WriteLine but can't use Task/Delay
我想试试 clojure-clr
这个程序工作正常:
(import [System])
(defn -main [& args]
(Console/WriteLine "Hello, World!"))
但是当我想使用任务时 class:
(import [System.Threading.Tasks])
(import [System])
(defn -main [& args]
(Task/Delay 1))
我得到 error:System.InvalidOperationException:无法找到静态字段:延迟
但在这种情况下,Task/Delay 与 Console/WriteLine
相同
不知道为什么
第一个有效,因为默认加载 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"]
我想试试 clojure-clr
这个程序工作正常:
(import [System])
(defn -main [& args]
(Console/WriteLine "Hello, World!"))
但是当我想使用任务时 class:
(import [System.Threading.Tasks])
(import [System])
(defn -main [& args]
(Task/Delay 1))
我得到 error:System.InvalidOperationException:无法找到静态字段:延迟
但在这种情况下,Task/Delay 与 Console/WriteLine
相同不知道为什么
第一个有效,因为默认加载 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"]