> Erlang中文手册 > send_after/3 开启一个定时器

erlang:send_after/3

开启一个定时器

用法:

send_after(Time, Dest, Msg) -> TimerRef

开启一个 Time 毫秒后将向 Dest 发送消息 Msg 的定时器

如果 Dest 是一个进程,那么它必须是一个本地进程,不管是被关闭的还是活跃的进程,否则会报 badarg 的错误。

在当前实现里,参数 Time 的值不能大于4294967295。

如果 Dest 是一个原子,它应该是被注册进程的名称。在投送消息的时候会查找与该名称相关联的进程。如果名字并不跟任何进程相关联,不会发生任何错误。

如果 Dest 是一个进程,那么当跟 Pid 关联的进程不存在或进程崩掉,该定时器将会自动取消。这个功能是在 ERTS 5.4.11 版本引入进来。当 Dest 是一个原子时,定时器不会自动取消。

跟定时器相关的一些函数:erlang:start_timer/3,erlang:cancel_timer/1,erlang:read_timer/1。

如果参数不满足上面指定的要求,那么将返回 bagarg。

erlang:send_after(5000, self(), test).