gen_fsm中send_event和send_all_state_event的区别

文档原文:

The difference between send_event and send_all_state_event is which callback function is used to handle the event. This function is useful when sending events that are handled the same way in every state, as only one handle_event clause is needed to handle the event instead of one clause in each state name function.

即:send_all_state_event 就是所有状态下该事件的处理方式都是一样的,而send_event 则是在当前状态下处理该事件。拿银行ATM机来举例:取消操作是在任何状态下都可以进程的,而且处理是一样的(都是回到初始登录界面);而取钱操作则必须要在登录验证成功状态下才能进行,在该状态下的处理和其他状态下的处理是不同的。

你可能感兴趣的:(Erlang)