backgroundworker

How do I best write my own background-working and communicatible (sending progress updates and getting messages) non-visual class in C# 4?

I have to develop a class which can run it's own hard-coded task in a background thread and communicate with container class sending him progress updates and taking messages from it. I believe I am going to extend BackgroundWorker class but it looks a bit weird to extend and I haven't managed to find a good example wit Google. Can you sh...

Thread Question

I have method which create background thread to make some action. In this background thread I create object. But this object while creating in runtime give me an exception : The calling thread must be STA, because many UI components require this. I know that I must use Dispatcher to make reflect something to UI. But in this case I ...

Updating a progress bar while wpf data binding is taking place (in c#)

EDIT - After playing around with a bunch of potential solutions (using backgroundworker and separate threads) I've found the key issue here is getting the data binding to be 'interrupted'. Since the progress bar is an animated circle (not a percent complete) it needs to respond to a timer event at consistent intervals to smoothly animate...

Using the .NET BackgroundWorker from VB6 fails with an AccessViolationException

The following MSDN example promises to demonstrate how to use the .NET BackgroundWorker from VB6 but it fails with an AccessViolationException. The only workaround is to compile the VB6 code as P-code, but that is not a viable option for us. http://msdn.microsoft.com/en-us/library/aa719109(VS.71).aspx Here are lots of details of the p...

Smart Background Thread Task in Ruby on Rails?

I need to perform a task every 5 seconds, but only when users are using the application. As for now, I use cron that works every minute and activates a task that repeats itself every 5 seconds with sleeps between, for a minute. However, it works also when the application isn't being used. Is there a gem that will do this kind of thing?...

C# BackgroundWorker RunWorkerCompleted Event

My C# application has several background workers. Sometimes one background worker will fire off another. When the first background worker completes and the RunWorkerCompleted event is fired, on which thread will that event fire, the UI or the first background worker from which RunWorkerAsync was called? I am using Microsoft Visual C# ...

BackgroundWorker acting bizarrely...

Hi guys I'm working on some code that calls a service. This service call could fail and if it does I want the system to try again until it works or too much time has passed. I am wondering where I am going wrong as the following code doesn't seem to be working correctly... It randomly only does one to four loops... protected virtual ...

Concurrent Threads in C# using BackgroundWorker

My C# application is such that a background worker is being used to wait for the acknowledgement of some transmitted data. Here is some psuedo code demonstrating what I'm trying to do: UI_thread { TransmitData() { // load data for tx // fire off TX background worker } RxSerialData() { // if received da...

Difference in BackgroundWorker thread access in VS2010 / .NET 4.0?

Here's an interesting one - in VS2005 / VS2008 running against .NET 2.0 / .NET 3.0 / .NET 3.5, a BackgroundWorker thread may not directly update controls on a WinForms form that initiated that thread - you'll get a System.InvalidOperationException out of the BackgroundWorker stating "Cross-thread operation not valid: Control 'thecontrol'...

Invalid Cross-Thread Operations from BackgroundWorker2_RunWorkerCompleted in C#

Hello. I'm getting an error that does not make sense. Cross-thread operation not valid: Control 'buttonOpenFile' accessed from a thread other than the thread it was created on. In my application, the UI thread fires off backgroundWorker1, which when almost complete fires off backgroundWorker2 and waits for it to complete. backgroundW...

Diffrernce between BackgroundWorker.ReportProgress() and Control.BeginInvoke()

What is the difference between options 1 and 2 in the following? private void BGW_DoWork(object sender, DoWorkEventArgs e) { for (int i=1; i<=100; i++) { string txt = i.ToString(); if (Test_Check.Checked) //OPTION 1 Test_BackgroundWorker.ReportProgress(i, tx...

Process job in application server or in a separate process?

Say I have a web application. I have a front end web server for serving static assets and 3 http-speaking application servers. I need to process some background jobs. The natural thing to do is to start up a separate process in the background to the process the job. However, I'm wondering if that's necessary - and why this is the normal ...

How to write async background workers that work on WPF flowdocument

I'm trying to write a background worker that processes a flowdocument. I can't access the properties of flowdocument objects because of the thread verification. I tried to serialize the document and loaded it on the worker thread which actually solved the thread verfication issue. However, once the processing is complete I also need t...

Keeping the UI responsive while parsing a very large logfile

I'm writing an app that parses a very large logfile, so that the user can see the contents in a treeview format. I've used a BackGroundWorker to read the file, and as it parses each message, I use a BeginInvoke to get the GUI thread to add a node to my treeview. Unfortunately, there's two issues: The treeview is unresponsive to clicks ...

How to properly use Object Contexts in Entity Framework using BackgroundWorker

Good day, I am developing using Entity Framework and WPF, and I am encountering some errors and I don't know why. When saving a record (using a BackgroundWorker), I set the entities change tracker to nothing (null), attach the record to a new disposable context, save it, detach, and dispose of the context. Saving a record fires and ev...

Do you know of a good F# and C# interop example available?

I am going to write a C# WinForms application which will run a long data-crunching task in a BackgroundWorker, show progress in a ProgressBar and have buttons to start, pause, resume and cancel the operation. I'd like to write the calculation in F#. Do you know of any good examples or readings available in the Web which can help me? ...

Rerunning DoWork on Background Worker Based on Result?

Let's say I have a backgroundWorker1_DoWork that finds a value in a database and returns it in e.Result. Let's say I also have a backgroundWorker1_RunWorkerCompleted that reads the result. What I want to be able to do is based on e.Result, I can re-run backgroundWorker1_DoWork, and this I am not sure how to do. I'd really apprecia...

WPF application in a one window

I would like to make an application in a one window using XAML. It should be like a slideshow with next and back button. One idea is to make 4 panels and have just one enable at the time. Is there any other way to do this? Like dynamic loading of other XAML? is it the BackgroundWorker mandatory to use with WPF (hence is DirectX rendered...

How to implement cancellable worker thread

Hi, I'm trying to implement a cancellable worker thread using the new threading constructs in System.Threading.Tasks namespace. So far I have have come up with this implementation: public sealed class Scheduler { private CancellationTokenSource _cancellationTokenSource; public System.Threading.Tasks.Task Worker { get; private s...

WPF BackGroundWorker ProgressChanged not updating textblock

I have the method below that seems to behaving strangely. The ProgressChanged and RunWorkerCompleted seem to be updating themselves at the same time. If I comment out the RunWorkerCompleted code which updates the Textblock I see the ProgressChanged taking effect after the data is transferred. What am i doing wrong here? I obviously want ...