私はgen_eventの動作を使用しており、イベントの処理とは別に、他の一般的なメッセージを処理できるようにしたいと考えています。ドキュメントによると、これらのメッセージはhandle_infoを介して受信する必要があります。しかし、これは機能していないようです...私が非常に明白な何かを見逃していない限り!
これが私の振る舞いの実装です:
-module(genevent).
-behaviour(gen_event).
-export([init/1, handle_event/2, handle_info/2, handle_call/2, terminate/2, start_link/0]).
init(_Args) -> {ok, []}.
handle_event(Event, State) ->
io:format("***Event*** ~p~n", [Event]),
{ok, State}.
handle_call(Call, State) ->
io:format("***Call*** ~p~n", [Call]),
{ok, State}.
handle_info(Info, State) ->
io:format("***Info*** ~p~n", [Info]),
{ok, State}.
start_link() -> gen_event:start_link({local, genevent}).
terminate(_Args, _State) -> ok.
そして、これが私の使用法です
{ok,PID} = genevent:start_link(),
io:format("***Sending to*** ~p~n", [PID]),
PID ! {hello},
io:format("***Sent hello to*** ~p~n", [PID]).
問題は、コードio:format( " Info〜p〜n"、[ Info ])に到達しないことです。
私はあまり愚かなことをしていないことを願っています!ありがとう