Updating UI From Worker Thread
Oct 27, 2009
This is slightly different to just updating a UI from a worker thread. The object which calls the thread, calls another object, and it is this object which is is trying to update the UI. It doesn't however work.
Imports System.Threading
Public Class Form1
Public Delegate Sub GetText(ByVal sText As String)
Public GetSomeText As GetText
Public Sub New()
' This call is required by the Windows Form Designer.
[Code] .....
View 5 Replies
ADVERTISEMENT
Mar 4, 2009
I'm creating a Client Server application which involves theServer running some scripts in clients and getting back results in an automated way. In Server, other than Main thread, i have 2 worker threads, a) one monitoring response from clients and b) the other scheduling next available job to respective client which executes that job. The issue here is ,I want these worker threads to write the status of their work in the UI(which comes under Main Thread). Also i need to write things in worker thread in a Data table and Rich Text Box in Main thread. But, I can't do so, since it has been blocked to access one thread's function or property directly from others. Is there any work around to do this?
View 8 Replies
Oct 18, 2011
I have a small problem that I am sure is due mostly to my inexperience with threading. I have used simple entirely self-contained threads before, but not to a great extent. I understand the basic laws that surround them, such as how a thread cannot access another thread's member directly, and must use delegates.
[Code]...
View 1 Replies
Dec 27, 2009
I have some class that splits some work onto multiple worker threads. To be more specific: the class represents a download, that can have as many segments as the user wants, that get then put onto separate threads.When I run the download with one segment, it works fine. When I run it with 2 segments, the second segment encounters an error.[code]When I put a breakpoint on the if, it'll stop there, but when I go to the next line, I get an error.I don't get what's getting wrong, and got a headache after a few hours of attempting to keep track of the correct thread.Anyone an idea what's going wrong, or how I can detect it better? (This is the first time I'm doing real multi threading debugging.
View 4 Replies
Nov 1, 2011
I've got a List(Of IWorker) which contains a number of concretes. IWorker in turn has a Startup() and Shutdown() method.Inside the Worker class, Startup() creates a new worker thread then returns. Shutdown() presently sets a private ShutDownRequested flag and returns. The flag is checked by the worker thread (at worst every few seconds).This all works fine but at present the parent app has no way to determine if the Worker has finished shutting down.I can see a number of ways around this but am not sure what the best one is.Add a State property to IWorker. Should work but I'm going to be polling states which seems a little nasty.Make the shutdown command blocking - Would probably be my ideal solution but I'm not sure how to implement it - does the worker Sunclock a private object which Shutdown() should also try to Synclock after setting the flag?
View 3 Replies
Aug 24, 2009
Here is my setup:
Form1.vb - contains RichTextBox1 and BackgroundWorker1, which calls a the Control module.
Control.vb - calls Display module.
Display.vb - calls Form1.SetTextBoxText("text here").[code]...
My observations: When the Display module calls SetTextBoxText, InvokedRequired's is false. Also, if the BackgroundWorker1 (which is in Form1.vb) calls SetTextBoxText, it works. But if BackgroundWorker1 calls a module that calls SetTextBoxText, it doesn't work.
View 4 Replies
Apr 6, 2012
I have a BackgroundWorkerThread which I want to use serially.So some of the code in the UI thread will look like this [code]But of course I can't do the second RunWorkerAsync until the UI thread has seen the RunWorkerCompleted event indicating that the "Sequences" work has been completed (or somehow knows that the "Sequences" work has been completed).So I need some sort of synchronization between the two RunWorkerAsync calls, but whatever I use cannot hang up the UI thread because it has to be able to handle ProgressChanged events.Maybe the RunWorkerCompleted event could make the second call but I really don't like that structure.So how do I delay the second call to RunWorkerAsync (for the "Templates" work) until the background thread has completed the "Sequences" work?
View 6 Replies
Oct 20, 2010
I am new to multi-threading in VB.NET and have come across a problem whereby I am wanting to append text to a text box on a form from a service thread running in the background.
The application I am developing is a client/server listener, I have been able to get the client and server PC's to talk with each other (confirmed through MsgBox), however I am now struggling to get the service thread on the server to append the text to the textbox, nothing vissible occurs.
I have a form named testDebug which calls a class (RemoteSupport), this class does all the handshake tasks and updates the textbox with the connection data.[code]...
View 2 Replies
Apr 6, 2011
I have searched the forum and found several forums related to the backgroundworker thread but have been unsuccessful in finding my answer.My objective is to display an animated gif or progress bar while the program is executing a particular method which can take upwards of several minutes to complete. I cannot get the second thread to run the progress bar while the main progrem is executing the time consuming method. I have created a demo based on another thread and can't seem to get it to create two threads. I was attempting to get the backgroundworker to execute the progress bar while my main code runs on UI thread.
[Code]...
View 10 Replies
Apr 25, 2012
I have a application which processes 1000's datas.. for each processing it needs to update gui and db and many variables in my application. So what i have planned is to use 50~90 background worker with my own algorithm of thread pool, synchronization and thread close.So here is it efficient in terms of memory and performance. just confused what to use.. backgroundworker componenet or standard thread.
View 11 Replies
May 30, 2011
I am testing a background workder. I am running the following code for the test.
Private Sub bgwTest_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgwTest.DoWork
Dim a As Integer = 0
Do While a < 10 'Infinite loop
ComboBox1.Items.Add(1)
[Code] .....
But this code generates the following error:
"Cross-thread operation not valid: Control 'ComboBox1' accessed from a thread other than the thread it was created on."
View 2 Replies
May 19, 2010
Can someone tell me how to get the selected text in the combo as it encountered cross-thread in the following code:
[Code]...
View 5 Replies
Nov 3, 2011
I am trying to create a new instance of a form if its not allready been created the only problem is is that the instance creation is inside a worker thread.[code]...
View 2 Replies
Aug 6, 2010
I'm working on a web application that uses the web browser control to get and set info from my website. The content on the site is pulled from different pages and the data the application stores becomes really huge so i used a background worker to do the work and keep the form responsive. On each loop i call to get the webbrowser's inner html so i can sort through it and grab what i need and it works; but only the first time!? After i call it the first time and try to call it again to update the variables the function hangs and then the console shows me a Thread Abort Exception, The try statement i used to contain it doesn't fire off an exception. When i debug the program and i get to that function, it hangs and then just stops working.
The function that loops:
vb.net
Dim ids As String = GrabIDs()
Dim IDCount As Long = ids.Split(CChar(",")).Length - 1
Do Until IDCount = 0
[Code]....
View 1 Replies
May 27, 2012
I'm getting a Cross-thread operation not valid error when my label text changes - this is very strange because it was working up until yesterday.The only way I can get this to work is by applying the invoke..[code]Is there a more simpler solution or will I have to invoke all my label coding?
View 9 Replies
Mar 21, 2011
I use background worker almost daily and works great. Today I came to an instance though where I needed to put my background worker in a separate project then the one I was running because I needed to use this class in two different projects in my solution. When I tested the coding on a winforms form, it works perfectly, handling my coding on the background thread. When I try to reference this class from an external project, all of my coding seems to run just fine, but it does not appear to be doing anything on a background thread as it should be, causing my main window to lockup.
Is there any way around this / what is the best practice for ASYNC calls in an external class.Note I basically created a class that u call start, and an event fires when data is ready, so it's not like my external project is waiting for the method to complete.
Solution ABC has two projects. Project A and Project B. Project A is my WPF application and B is my DLL doing the work. Inside project A I have
Dim SmartCardData as new Solution.B()
SmartCardData.Start()
Project B has a sub
[code]....
View 3 Replies
Jan 14, 2009
Is it possible to create a new instance of the webbrowser class inside of a worker thread?
View 2 Replies
Jun 29, 2011
I guess that I should preface this by saying that I am totally new to VB, but I come from the PHP/MySQL world so I can work my way through things syntactically. That being said, I have made a program that expedites a few things that I do on a routine basis at my place of work. However, because I have no idea what I'm really doing, my app logs up while the UI thread does all the background work.
What I am trying to accomplish, is a few things. Have multiple functions/subs [done]Somehow generate a generic method that executes a sub when called (one at a time, always)My already coded subs return values (for updating a progress bar for example) but have the background thread that spawns the function, update my UI threads progress bar / list box with the output.I guess I want to know if this is even doable, and secondarily, how would I go about doing this? I understand the idea of threading, but all of the tutorials that I have seen / read are pretty convoluted.
View 7 Replies
Sep 4, 2009
I have a standard windows application called winap. I have a com component which acts as an api to the winap. I have a class in winap call classapi which has all the methods that the api calls and all works well. The problem is that one of the methods in my class api needs to get a handle on form elements in the main worker thread. Whenever I try to access an existing form I keep getting null because the for exists in the main worker thread and my api call is in a seperate thread.
[Code]...
View 5 Replies
Dec 11, 2011
how to put this on a background worker without getting cross thread errors??? trying to upload a childform object values to an access db.I don't work in IT,Our company's LAN so slow that it takes around 3~5 seconds trying to update/insert values in access using the code below so putting it on a background worker i think makes the app immediately usable once save/upload's called unless otherwise somebody could suggest a faster way to speed things up.[code]
View 2 Replies
Apr 23, 2009
I have a windows application that need to process som quite time consuming jobs. In my first try i did all processing under
the form thread. The result was bad response and update of the form due to the heavy jobs.To get around the problem with bad response from the form i created a new class "processing" where i put all the data processing. Then i instanciated a background worker where i in the "doWork" sub created a new instance of "processing".The "processing" class creates a timer from system.timer, and the timer drives the processing.On the Timer event Elapsed the timer starts a new thread from the thread pool.
My problem is now when i want to asynchronously close the background worker (with the corresponding function call what ever it is called ...) there is still a timer thread out there that causes exceptions for me.
1. How can i close my background worker and at the same time have the timer to be stopped?
2. Is there a way to synchronize the timer event so that the timer executes from the background worker thread?
3. Is there a better approach for me to adapt?
View 3 Replies
Dec 14, 2011
We have an issue with an application where we are making a call to an asynchronous process on LostFocus of a TextBox, the asyncronous process then needs to be able to update the main form UI (or display a dialog from the main form UI) while running asynchronously.We have thought about call backs and having it truely asynchronous but we need everything to execute in the correct order and this is for a data entry system where speed and accuracy of data entry is important.Example code shows what we are trying to do and if you switch to Begin Invoke the order of processing is not correct.[code]Does anyone know how we can invoke something else on the main form thread while is is still busy processing the LostFocus event?
View 2 Replies
Aug 25, 2011
The program i am writing has 5 features, all of which i want to run in their own threads. On the main for I have a listView which contains all the accounts (user password etc). The thread is defined as:
Public fbaThread As New Thread(New ThreadStart(AddressOf fba_Start))
In cmdAdderStart i begin the new thread by:
fbaRun = True
fbaThread.Start()
[Code]....
I have managed to write the UpdateDebug() to update my txtDebug on the main form. But now I am having trouble being able to pull the values from lvAccounts.items().subitems I can accomplish this with global variables but i'm sure this is not the best way to do this.
View 5 Replies
Jun 13, 2010
I have a VB.NET 2010 app I am writing that does a lot of work on a RS485 bus in 2 seperate threads. These threads are started as soon as the app is opened and run as long the app is open. I would like to have the threads update labels on the main (and only) form every so often based on what's happening on the serial bus. I know it involves invokes and delegates but I haven't found a straight forward answer on how to implement it.
View 5 Replies
Aug 5, 2010
I am writing a basic application to provide remote support to multiple computers over a TCP Stream. For example, if my brother/dad has an issue with their computer, rather than going over to help them I can just use remote support (Yes, I know Windows has Remove Desktop, and their is TeamViewer, ect. But where is the fun in using those =P)Anyway, it basically works by taking a PrintScreen of their computer, sending it to mine and displaying it in a PictureBox, then when I click the image, it records the coordinates of my mouse, sends it to theirs (Little Maths for resolutions and positions ofc) and clicks, then sends a new image.
My problem is, I want a ListView displaying the PC Info, like:
PCName - RAM - Free HDD Space - 32/64Bit - Processor Speed
Now, my problem is, I have a Class which does the TCP Server, and in that class when it Receives a Message, it calls the Sub "RunCommand(ByVal Command As String)", which then splits the String and works with it.So, for example, their PC would send the String "Info|DadPC|2GB|235GB|32Bit|2.2GhZ|" And mine would split it, and add that data accordingly.However, what happens is, nothing. If I put in "MsgBox()" anywhere in the Code, it shows it is all Split, and received correctly and everything is fine, but no matter what happens, it wont add to the ListView (Or anywhere else on the form, for example "GUI.Text = Info(1)" Wont work either)?
View 8 Replies
Feb 7, 2010
I have been trying to update a textbox on the main form of my program using a different thread, however the changes are not relected in the textbox.I am using MS Dev studio 2010 beta 2.0 .NET 4.0. Here's my code....
The main form
Code:
Public Class frmMain
Private Engine As New clsEngine
Private txtMessage As String
[Code]...
View 2 Replies
Dec 28, 2011
I've got a bunch of labels that I update regularly in the program, resulting in lagg, which is bad, so how can I update the labels in a thread?
When I try
Thread = New System.Threading.Thread(AddressOf ShowInfo)
Thread.Start()
[Code]......
View 3 Replies
Sep 8, 2009
I've seen a good bit written on avoiding updating a form from a thread.However,I was wondering if that was a problem if the thread exists in an object that programatically builds the form?Thus the form and associated logic exist within the same "thread space." Seems on the face of it like it would work since everything in the form should be in a single dispatch queue.
View 8 Replies
Apr 3, 2010
I'm running some tasks on a BackgroundWorker thread and needed to display the current tasks in a label.Before adding the label, the tasks were completing just fine and the UI was responsive.Once I added the labels, the UI has become unresponsive. The issue, I believe, is the Invoke property.I've declared all my tasks, including the updating, in a sub and am getting the Invoke property of the label each time, in order to set the information.The following is an example of what I'm doing:
VB.NET
Private Sub Test()If lblTask.InvokeRequired = True Then Dim mi As New MethodInvoker(AddressOf Test) lblTask.Invoke(mi)
[code]....
View 7 Replies
Oct 10, 2010
I have a few classes. One of the classes handles everything to do with updating controls (Such as adding items to a listview, etc.) and another is handling loops. I'm trying to add something to a richtextbox from another thread.[code]..
View 3 Replies