Best way to introduce delay between sequences

In reply to chr_sue:

Thank you chr_sue.
I was exploring uvm_events and came across a post with your reply(in this forum):

class driver1 extends uvm_driver #(my_tx);
uvm_event_pool ev_pool = uvm_event_pool::get_global_pool();
//...
task run_phase(uvm_phase phase);
uvm_event ev = ev_pool.get("driver1_ev");
ev.trigger(req);

endtask
//...
endclass

class driver2 extends uvm_driver #(my_tx);
uvm_event_pool ev_pool = uvm_event_pool::get_global_pool();
//...
task run_phase(uvm_phase phase);
uvm_event ev = ev_pool.get("driver1_ev");
ev.wait_trigger();
$cast(req, ev.get_trigger_data()); 
//...
endtask 
//...
endclass 

In driver1, I see:
ev.trigger(req);
But i dont see #type mentioned while declaring uvm_event ev. Isn’t it required? It takes any data type?
On driver2, I see:
$cast(req, ev.get_trigger_data());
req will hold the data from driver1, right?

And one more thing, with event_pool, we can access the events in any component including sequence, right?