I tried this example:
class sc;
int abc;
parameter MAX_EX_PARAM=10;
task example_monitor_signal;
for (int i = 0; i < MAX_EX_PARAM; i++) begin
automatic int j = i;
fork
monitor_signal (j);
join_none
end
endtask
task monitor_signal(input int a);
wait(abc==a);
$display("a=%d",a);
endtask
task main_phase ();
fork
example_monitor_signal ();
join_none
endtask
endclass
module abc;
sc s1;
initial begin
s1=new();
s1.main_phase();
s1.abc=5;
#2;
s1.abc=9;
#3;
s1.abc=6;
end
endmodule
output:-