Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Can a backgroundworker be told to wait?
Message
 
À
Tous
Information générale
Forum:
ASP.NET
Catégorie:
Windows Presentation Foundation (WPF)
Titre:
Can a backgroundworker be told to wait?
Versions des environnements
Environment:
C# 4.0
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01614173
Message ID:
01614173
Vues:
37
I'm using Excel interop and it seems that this functionality needs to run in the UI thread.
So I execute that from the ProgressChanged backgroundworker event.
Is there a way to have the dowork event (that invoked the progress changed event) interrupt execution until the ProgressChanged event is finished?

Here's how the bg is initialized:
       private void initializeBackgroundWorker()
        {
            bg36 = new BackgroundWorker();
            bg36.DoWork += bg36_DoWork;
            bg36.RunWorkerCompleted += bg36_RunWorkerCompleted;
            bg36.WorkerReportsProgress = true;
            bg36.ProgressChanged += bg36_ProgressChanged;
            bg36.WorkerSupportsCancellation = true;
        }
This is how the process is started:
       private void bg36_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker bw = (BackgroundWorker)sender;
This is the call to the UI thread
            bw.ReportProgress(0, "save ledgers");
And this is the routine I would like to complete before the worker continues
       private void bg36_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            statusTextBlock.Text = (string)e.UserState + "\n\n" + Monitor.peek();
            if ((string)e.UserState== "save ledgers")
	        {
		         saveLedgers();
            }
        }

If things have the tendency to go your way, do not worry. It won't last. Jules Renard.
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform