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).