Buongiorno a tutti.
Non so se questa è la sezione più adatta per fare questo tipo di domanda.
Sto sviluppando un programma i c# con l'utilizzo del pattern Model View ViewModel(MVVM).

Nella parte View scritta tramite codice Xaml, ho creato una maschera di input, dove l'utente può settare diversi parametri.
-nomeMacchina="xyz"
-numeroMacchina=001
-nomeArticolo="xyz"
-numeroArticoli=001
-tara=0,001kg
-pesoNetto0 = 0,100 kg
-pacchettiPerMinuto = 500
-totalePacchetti = 10.000

Tramite queste informazioni inserite, che vengono trasferite al mio ViewModel, io devo creare dei dati di pacchetto delle pesate.
Per fare questo uso un backgroudworker perche se no tutto il programma si blocca finchè la creazione dei pacchetti è terminata

questo è il metodo che uso per la creazione dei pacchetti e la gestione del loop

codice:
private void CreaPacchetti(object sender, DoWorkEventArgs e)
            {
                try
                {
                    int numeroMacchina= MachineNumber;
                    string nomeMacchina= MachineName;
                    string numeroArticolo= ArticleNumber;
                    string nomeArticolo= ArticleName;
                    double tara= Tare;
                    double pesoNetto= NetWeight;
                    int pacchettiPerMinuto = PackagesPerMinute;
                    int totalePacchetti= PackagesToProduce;

                    for (int i = 0; i < totalePacchetti; i++)
                    {
                        if (Worker.CancellationPending)
                        {
                            e.Cancel = true;
                            Worker.ReportProgress(0);
                            break;
                        }
                        else
                        {
                            _model.creaPacchetti(numeroMacchina, nomeMacchina, numeroArticolo, nomeArticolo, tara, pesoNetto);

                            Thread.Sleep(pacchettiPerMinuto);
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error!");
                }
            }
In realtà con pacchetti per minuto io non dovrei definire il thread.sleep ma devo semplicemente dire che deve scrivermi nel mio dataBase 500 pacchetti come nell'esempio.
e quindi in un minuto fare 500 cicli for, al secondo minuto altri 500 etc.

Qualcuno può aiutarmi?
Grazie in anticipo