Can I start sequence with a virtual sequencer in a task?

Hi Tudor Timi.
I’m trying to start a sequence with a virtual sequencer in a task but I’m stuck.

For example, there is task body() in virtual_seq class. usually, we execute sequence in a test class as the below But I want to start a sequence from mytask as the below.

    task run_phase(uvm_phase phase);
    phase.raise_objection(this);
    v_seq = virtual_seq::type_id::create("v_seq");  
    //v_seq.start(env_o.v_seqr);    
    v_seq.mytask;
    
    phase.drop_objection(this);
  endtask

and here is the virtual sequence.

class virtual_seq extends uvm_sequence #(seq_item);
  core_A_seq Aseq;
  core_B_seq Bseq;  
  
  core_A_sequencer seqr_A;
  core_B_sequencer seqr_B;
  `uvm_object_utils(virtual_seq)
  `uvm_declare_p_sequencer(virtual_sequencer)
  
  function new (string name = "virtual_seq");
    super.new(name);
  endfunction

  task mytask;
    
    Aseq = core_A_seq::type_id::create("Aseq");
    Bseq = core_B_seq::type_id::create("Bseq");
    
    Aseq.start(p_sequencer.seqr_A);
    Bseq.start(p_sequencer.seqr_B);
  endtask
endclass

and I got the NULL pointer dereference. Error about p_sequencer.
How can I use p_sequencer in a task?

I implemented With Virtual Sequnce & virtual sequecer (p_seq(1) - EDA Playground for my question.