我用:timer.apply_after/4函数创建了一个计时器
:timer.apply_after/4
{:ok, ref} = :timer.apply_after(60000, Module , :function , [args])
这里返回的ref是这样的元组
ref
{-6451215415 , #Reference<0.265269.0.1654156.8484>}
我想在实施之前取消这个过程,有办法吗?我试过了
:timer.cancel(ref)
但返回参数错误。2如何在时间结束前取消该计时器?
bwntbbo31#
这当然是可能的,并按预期工作:
iex|1 ▶ {:ok, ref} = :timer.apply_after(1_000, IO, :inspect, ["¡Hola!"]) #⇒ {:ok, {-576460467744153, #Reference<0.2854054855.1602748417.47727>}} # ... # after 1 second: #⇒ "¡Hola!" iex|2 ▶ with {:ok, ref} <- ...|2 ▶ :timer.apply_after(1_000, IO, :inspect, ["¡Hola!"]), ...|2 ▶ do: :timer.cancel(ref) #⇒ {:ok, :cancel}
1条答案
按热度按时间bwntbbo31#
这当然是可能的,并按预期工作: