Ciao a tutti, ho un problema con un backgroundworker. Sto creando un applicazione seguendo il modello MVVM.

La mia applicazione periodicamente deve leggere dati da una seriale ed aggiornare la GUI. Ho una classe che si occupa del refresh dei dati:

codice:
class C_Refresh(){

    BackgoundWorker _worker;
   bool RichiediPausa;

public C_Refresh(){
            _worker = new BackgroundWorker();

            //Proprietà worker
            _worker.WorkerReportsProgress = true;
            _worker.WorkerSupportsCancellation = true;

            //Metodi worker
            _worker.DoWork += new DoWorkEventHandler(_worker_DoWork);
            _worker.ProgressChanged += new ProgressChangedEventHandler(_worker_ProgressChanged);
            _worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_worker_RunWorkerCompleted);
}

      //Metodo per mettere in pausa il thread
        public void Pausa()
        {      
           RichiediPausa=true;      
            _worker.CancelAsync();
        }
}
Nel mio viewmodel controllo il Thread per il refresh:

codice:
_refresh.start();

_refresh.Pausa();
Perchè quando chiamo il metodo pausa dal mio viewmodel, all'interno del DoWork la variabile RichiediPausa e sia _worker.CancellationPending risultano sempre essere impostate su false?

Grazie