當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Elixir Process.send_after用法及代碼示例


Elixir語言中 Process.send_after 相關用法介紹如下。

用法:

send_after(dest, msg, time, opts \\ [])
@spec send_after(pid() | atom(), term(), non_neg_integer(), [option]) :: reference()
when option: {:abs, boolean()}

time 毫秒後將 msg 發送到 dest

如果dest是一個PID,它必須是一個本地進程的PID,不管是死的還是活的。如果dest 是一個原子,它必須是在交付時查找的已注冊進程的名稱。如果名稱不引用進程,則不會產生錯誤。

消息不會立即發送。因此,即使 time0dest 也可以接收其他消息 in-between。

此函數返回一個計時器引用,可以使用 read_timer/1 讀取或使用 cancel_timer/1 取消。

如果給定的dest 是一個不活動的 PID 或給定的 PID 退出時,計時器將自動取消。請注意,當dest 是原子時,計時器不會自動取消(因為原子解析是在交付時完成的)。

由編譯器內聯。

選項

  • :abs - (布爾值)當 falsetime 被視為相對於當前單調時間。當 true 時,time 是 Erlang 單調時間的絕對值,此時 msg 應該傳遞給 dest 。要閱讀更多關於 Erlang 單調時間和其他與時間相關的概念,請查看 System 模塊的文檔。默認為 false

例子

timer_ref = Process.send_after(pid, :hi, 1000)

相關用法


注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Process.send_after(dest, msg, time, opts \\ [])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。