Call Another Form From A Background Worker In .net?
Mar 9, 2011
i was trying to call form2 from form1's background worker's DoWork event . The problem is that when the event runs , form2 gets loaded but it shows not responding.i am also passing a value to form2 at run time which the background worker calculates?
(1) User should be able to see progressbar form in continuous/marquee style. (2) When one task is completed, title on the prog.bar form is changed (3) when final task is completed, progressbar should go away.
What my architect wants: [Code] Downloaddata.vb class, that will actually do the work,and will implement the interface. So DoMyWork(dim frm as ProgressBarForm) implements Iwork.BeginWork.
Twice, it will report the stauts back to progress bar form. ProgressBarForm.vb class(it has BGWorker Thread) will have one public method(name ShowMyProgress) that Downloaddata class can call from its DoMyWork method when status is changed. And also implementation of all 3 events of worker thread.
My Questions:
1. Where should I put BGWorker.RunWorkerAsync 2. What kind of logic should go in ShowProgress method in progressbar and also in DoWork event?
Do I need application.doevents? In nutshell, how Progressbarform and DownloadData will communicate back & forth?
I have a form and controls on from I work with background worker on my form and I want when I work with background worker in (for next) changed a data table example (mydt.clear()) or change a datagrideview..how to update controls on a form when we work with background worker? [code]
I am using background worker to report progress on the screen. In the Main.vb I have the following
Public Sub report(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwlistener.ProgressChanged Dim message As String = e.UserState logRTB.AppendText(message & vbCrLf) End Sub
When I call this from Main.vb I use: bwlistener.ReportProgress(0, "Some status text goes here") It works great. The problem is when I try to call it from any other module in my project.
When I call it OtherFile.vb: Main.bwlistener.ReportProgress(0, "Some status text goes here") It doesn't work... The program doesn't crash. Debug goes through everything but no output is actually shown to the end user.
I am using query from a SQLite database as the AutocompleteCustomSource for a ComboBox. Also, I want to load data in separate thread. My LoadData method works fine when called directly, but it fails when it is called from the BackgroundWorker thread. When it is called from the background thread, it throws a Specified cast is not valid exception on the csearch.AutoCompleteCustomSource.Add(hh("Taj")) line. Below is my code:
Sub LoadData() Dim connetionString As String Dim cnn As SQLiteConnection
I'm writing an application in Visual Basic Express 2008, part of the function being to walk through a folder structure starting from a user specified folder. In my research, I found this thing called a background worker which seemed an appropriate tool to use given the potential size of a target folder structure. I successfully installed the two examples from the library here, and believe I understand the principles involved. Even so, having tried to build this feature into my application, it seems as though it is not working as expected, and, as predicted, debugging a multi-threaded application is a pain in the extremity.
I have this fragment under my "start" button click event -
my backgroundworker as I just cant get it to work. Basically I have a backgroundworker which does a few tasks but I'm trying to implement a progress bar and a label. I'm going to set the maximum value of the progress bar to 10 and then have it updating as I move with each task, also I'm thinking of a label with the progress bar which will display the progress ie
I have a background worker that used to fire its RunworkerCompleted event when its DoWork routine finished querying a database and writing its output to a file. The bg worker was in a class called Query, which was called from another class called Trigger. A new Trigger Class was created for each monitored event. In this class, there was a structure which stored the config of each Trigger. When this event was triggered (set to TRUE) a new query class is created and it is passed the Trigger class. When the database query, file writing was done, the query class and all its rsources were diposed from the RunWorkerCompleted EventRecently I changed the application so that a new trigger class is not created for each monitored event. There is a single instance of the class but new config structure for each event. When a particular event is trigger, jsut the config structure is passed to a new query class and the sma ething is done in the query class. I just noticed now that the RunWorkerCompleted event is not being fired anymore.
I have an issue that I can't seem to find a straight answer for anywhere... I have a For loop that sends a file name to a background worker that contains some long running code and I can't find a way for the parent thread to wait for the background worker to finish... Here is the example code:
For 4 BacgroundWorker1.RunWorkerAsync(fileName(i)) Next
I have run into this before, When I develop a form to use a background worker to fill tableadapters, the background worker does fine on machines running Vista, but if you run the same thread on an XP machine, the thread gets hung.All the thread is doing is filling a table adapter like this.[code]Why would this run on a Vista machine and not an XP machine?
I have created a background worker to go and run a pretty long task that includes creating more threads which will read from a file of urls and crawl each. I tried following it through debugging and found that the background process ends prematurely for no apparent reason.
While Not myreader.EndOfData Try currentRow = myreader.ReadFields() Dim currentField As String
[code]....
This first bit of code is the loop to input from file and this is what the background worker does. The next bit of code is where the background worker creates threads to work all the 'landingPages'. After about 10 threads are created the background worker exits this sub and skips the file input loop and exits the program.
Try For Each landingPage As String In landingPages pgbar.Timer1.Stop() If VisitedPages.Contains(landingPage) Then
[code]....
Also my main thread runs a forms from where this background is called to run but the main thread is supposed to wait for the background process to end unless the user selects another option from the main form.
I've been experimenting with background worker to maintain responsiveness and to allow the UI to update while things are being done in the background.I've been having problems getting the background worker to do anything with form controls.For simplicity lets say I have form1 and form2.The background worker is on form1Initially I couldnt get it to edit controls on form1 but by using [code]However the problem came when I tried to get the same background worker to update controls on form2, in this case a text box. With the above code there is no error but it also does not update the text box.Is there an easy way to give a background worker access to multiple forms.
Is there a way to pause a background worker? What I need to do is pause a background worker when it encounters a file error, wait for a few seconds, and then carry on.
I have a backgroundworker which does a few tasks but I'm trying to implement a progress bar and a label. I'm going to set the maximum value of the progress bar to 10 and then have it updating as I move with each task, also I'm thinking of a label with the progress bar which will display the progress ie [code]
How can i run it as a background worker? so it can run in the background where it does not effect my current running function - basicly so the form will not freeze at all.
I am developing a VB application along with MS Access... When I initially load my form I need to put my application to sleep for 3 seconds or else data wont load properly. So for this 3 seconds I would like to show a progress bar displaying a message "Please wait" I tried using background worker but did not find any success... I have gone through many tutorials but for some reason could not accomplish the task.
I'm new for VB.Net 2008. I am facing some problem about how to make the multiple groups activities running (it might concurrent) based on their own activity's time set? For example: If there is 80 groups and 100++ activities in each group, can i use background worker (create 80 background worker?) to handle this (each background worker handle their group activities.) if in this case (But it will running lag or hang)
I want to use a background worker control in my application, and have it report progress to a Progress Bar It will download data and stuff, and I want to be able to change the text on a label.
I am trying to code a simple background workers class without needing to use the backgroundworker object on a form. This would allow me to use a background worker in any class without writing much additional code. Is it possible to pass in the name of a sub at runtime instead of hard-coding it? To do this I would replace onDoWork and onProgressChanged below and use (Byval onWorkSub as SomeKindOfObject?, Byval onProgressChangedSub as SomeKindOfObject?) instead. [code]
I just can't see what I am doing wrong here, since I have implemented a progress bar into my background worker it no longer only runs the once (in some cases I have seen the coding within the foor loop run 6 times)
My coding:- My progress bar max value is set to 10. BGWorker Do Work Event
ive developed my app and am im trying to improve its use ability. Ive created a dvd management app for myself and i have a function that retrieves all the data for all the movies displayed in my listview. It works fine but the interface hangs for the entire time.Ive decided to use a background worker so i can browse other movies with all the data is being fetched.Im having silly problems with getting the index value for my listview when im using the .DoWork()
ive had these errors:
1. Cross-thread operation not valid: Control 'ListView1' accessed from a thread other than the thread it was created on.
2. nvalidArgument=Value of '1' is not valid for 'index'. Parameter name: index
the function works a dream whenvnot being called inside the doWork()
'New Objects Dim fetch As New Create Dim download As New Download Dim parse As New Parse
I have created a background worker to go and run a pretty long task that includes creating more threads which will read from a file of urls and crawl each. I tried following it through debugging and found that the background process ends prematurely for no apparent reason. Is there something wrong in the logic of my code that is causing this. [code]Also my main thread runs a forms from where this background is called to run but the main thread is supposed to wait for the background process to end unless the user selects another option from the main form.
I just started fooling around with background workers.
Up in FORM_LOAD somewhere consoleBW.WorkerReportsProgress = True consoleBW.RunWorkerAsync()
[Code]...
I can see how this runs regardless of what I'm doing in the main form - modal dialog boxes - whatever.
Now what I really want to do is have this background worker check to see if the DB has changed since we last created some classes that hold the data. I basically want to set a property in the CLASS that indicates the need to get fresh data.I discovered all the problems with cross-threading calls to UI objects - so I used the PROGRESSCHANGED event. just set a property in a data class created by the UI from the background worker?