Updating Controls In A Thread?
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
ADVERTISEMENT
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
Feb 15, 2010
My program crashes with the following error:Controls created on one thread cannot be parented to a control on a different thread.Purpose of the program is to add a control from a thread outside the main thread.Below is the code Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
[Code]...
View 1 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
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
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
Mar 24, 2010
I have got this module which copies a specific folder and all files inside it.[code]...
View 8 Replies
Apr 28, 2010
I have some controls in a .net 4.0 form - a listbox and a listview item.I also have another thread in the same class which is checking a host for output.It uses delegates to display all incoming data to a richtextbox - this works fine.If the data has a particular signature it sends it to a parser sub in another module.This module tries to update the listbox and listview items with that data after it has manipulated it.The problem is; no data is displayed and no errors are thrown.If I add a msgbox("Test") after the code, it shows the messagebox.If I add a test messagebox inside the delegate function, it shows the messagebox. If I put the same MainForm.ListBox1.Items.Add("Howdy") in a ButtonTest.Click event it adds it correctly.
View 14 Replies
Aug 24, 2010
i have lurked on these forums before and finally signed up..i have a situation that, after days of searching the web, i have not been able to come up with a solution for.i have to fire off a function that takes a large amount of time (writes to database, creates files, etc etc)this function is a non-shared function of a class. if need be i could make it Shared.[code]the code works great, but what i need to be able to do is update a form with a progress bar as the job is processing.all of the examples i have seen that do this are being called from within a Windows Form and they access the form directly - i cant do that in this case. my form needs to be 1 form for 1 job being executed - can process multiple jobs at one time and thus i need multiple forms.i have tried making the form part of my delegate class but since it runs in the same thread the effect is it "freezes" until the job is complete.i have just started looking into using a background worker but again, all examples i have seen use the component as part of a form - that wont work for me.
View 3 Replies
Nov 2, 2011
I've been programming in vb.NET for a whileAnd to be honest, its turning out to be a real pain.Here is the
Form1.vb: Imports System.Threading
Public Class Form1
Dim trd As Thread[code].....
So, I have a form (form1) with a label on, this label simply reports the status of the thread.The thread begins the Class1.Main() sub, and I have a delegate setup to change the text propoerty of the label.Now,I know the label is created on the UI thread,so I assumed the delegate would work. However,it seems that it updates the .text property, but doesnt redraw the control when .Update() is called .What am I doing wrong?I have found lots of examples of delegates, but all run from within the same class. I want to use threads too, not a backgroundworker! This code is a "simplified" version of a project I am on, which is encountering the same problems
View 17 Replies
Sep 20, 2009
I'm using the following to check the state of checkboxes and then activate some public subs based on the checked state of the checkboxes:
vb.net
Public Sub TestSub() If Me.CheckBox1.InvokeRequired Then Me. CheckBox1.Invoke(New MethodInvoker(AddressOf TestSub)) Else Begin() End If End Sub
Within the Begin sub, I have code that performs specific actions and then updates a ListView with that information.As far as I can tell, the actions are being performed, but the ListView isn't being updated with the info.I'm calling the Test sub from a seperate form, within the BackGroundWorker's DoWork event.Would I have to check the InvokeRequired property of the ListView as well?I'm looking more into the documentation of the BackGroundWorker.
View 8 Replies
Sep 1, 2009
I'm not sure exactly how to describe this. In VB6, there was a Timer command. I could create a variable of type Timer and loop until the current value for Timer exceeded the initial plus a given amount of time. This allowed me to update form variables while the timing loop was executing. How can I do something similar in .NET?
Here is a sample of the VB6 code:
Code:
Dim StartTimer As Double
StartTimer = Timer
Do
[code]....
View 2 Replies
Mar 8, 2010
I have a windows form with a progress bar and a button to start/stop the process. I am performing some action when clicked on 'Start' and updating the ProgressBar accordingly and its working fine. But when I try to click on the 'Stop' button when the process is going on, I couldn't access the Window. If I click for multiple times, I am getting (Not Responding) on the titlebar.
Then, I created a thread and run the function (which performs my task and update the ProgressBar) in it. I am getting an error that it could not access the control which is created in another thread.
View 2 Replies
Nov 17, 2008
I'm having some problems with updating a form from a background thread, started in the MyApplication_Startup sub.As far as I know updating forms or controls on forms have to be done threadsafely.
When the application starts up, some threads are being created which create an object in which a download for a zipfile will be started. The object has some delegates to let the GUI know what the status of the download is, for example 'started' or 'finished'. Also the mainform will be shown on which a datagrid has been placed to show the user which files will be downloaded and in which phase the download is.
All this works amazingly fine but when I want to update the datagrid's cells p�r thread the datagrid aint updated. I know the problem is that the thread in which the Form is created isn't the same as the thread which wants to update the grid?
View 4 Replies
Jan 14, 2011
Private Sub runExe()
Dim myProcess As New Process()
Dim myProcessStartInfo As New ProcessStartInfo("mkclean", " --optimize """ & txtSrcFile.Text & """ """ & txtSaveFile.Text & """")
[Code]....
View 4 Replies
Dec 21, 2010
I have a very long running process that I start in a thread. This raises events with messages to say what it is doing. How can I update a label on screen with these messages? (The label is in an update panel if that makes it easier).
View 3 Replies
Jan 24, 2011
I'm having some trouble getting cross-thread communication/field-updating working properly in my VB.NET 2010 program. I'm trying to update a field on my main form whenever a thread that I've started throws an event. Here's a simplified version of my code:
My main form:
Public Class Main
' stuff
' Eventually, startProcessing gets called:
[Code]....
View 1 Replies
Apr 22, 2010
I have a program written with VB.NET 2008 that includes a large number of dynamic controls in a form. When I drag the corner of my form, I want to resize every controls according to the new form size. It works very well, except that the controls are repainted one by one, instead of waiting at the end of my fonction and do a single repaint.
I did a lot of research on the NET without any good results:
- "Form1.DoubleBuffered = true" does not have any effect
- "Form1.SuspendLayout" does not have any effect
- "SendMessage(Me.Handle, WM_SETREDRAW, New IntPtr(CInt(False)), IntPtr.Zero)" suspended repaints but left the entire window messy.
I am running out of ideas. Here is a sample module to test if your trick works. Just try to resize the form, you will see how long it takes to repaint every control one by one:
[Code]...
View 11 Replies
Apr 22, 2012
I am trying to write an app that in the thread will do some tasks, the form lokks like this:and what it should is something like this:
- retrieve data, populate a row in the listview, increase the first progress bar
- retrieve data, populate a row in the listview, increase the first progress bar
- retrieve data, populate a row in the listview, increase the first progress bar
[code]....
View 2 Replies
May 24, 2012
I have a custom control which I add a number of to a flowlayoutpanel:
Dim drive As New WindowsControlLibrary1.UserControl1()
drive.FileSystemlable = reader.GetString(2)
drive.AbalableSpaceLable = Convert.ToInt32(reader.GetString(4) / 1024)
drive.TotalSpaceLable = Convert.ToInt32(reader.GetString(5) / 1024)
drive.SetVolumeLable = reader.GetString(3)
[Code]...
View 1 Replies
Oct 31, 2011
I'm having trouble getting controls in non active tabs to update. I have a tab control with 12 tabs. Each tab displays a custom calendar of days for each month. For each of the days I used label controls. Now the trouble im having is when I re-size the window I want the day labels in each tab to re-size accordingly. I have the re-size function written and working but for some reason it will only re-size the active tab. In order for me to have the labels on the other tabs update to the re-size I need to open each tab as to load it then it will update the controls.I've tried putting Application.DoEvents() in my re-size loop but that didn't work. How can I get the other tabs to update / redraw the controls without having to open the tabs first?
View 9 Replies
Nov 1, 2010
I have a form with many controls that are binded to a datasource. when some of these values change, they impact aspects of the form itself like the backgroud color or the title. There is a filter applied to it so it only displays certain records (this is important).when I change something and save the data I need to update the filter to show all the previous records plus the current one.All that works great, but the problem is: saving the data or changing the filter makes the controls take a new value based on the new record and go through the subs that each one have to modify the aspect of the form. This happens because if I save the data first, then the current record does not conform to the filter and all the data in the form changes, or if I change the filter first, we go to the first record of the set.
After that I return to the correct record and everything looks fine, but going to all the changes makes the app halt for a moment.Is there a way that I can stop the controls in the form form updating to their binding data while saving or changing the filter in the bindingsource?
View 4 Replies
Feb 3, 2009
I have created a dynamic form and have added several textboxes controls giving them names such as tb1, tb2 etc. The form is create and displayed, however cannot update the value of the controls.
Private WithEvents gform As New GenerateForm
The form is created using the following from click event of a button
Dim x As Boolean = gform.myForm("AForm") -- Form get created and displayed
x = gform.PopulateForm("a test message") -- The value is passed but not displayed
Public Class GenerateForm
Dim tbMsg As New TextBox()
[Code] .....
View 3 Replies
Nov 27, 2010
1) Which one works better? BackgroundWorker or Multithreading?I have to do lots of processing in my application, I'm not too sure how the two of them works.
2) Can I assign controls in a GroupBox to a thread?Let's say I have to login to a certain forum twice with different accounts, so in GroupBox1 (thread1), I'll be logged in with username "asd", in GroupBox2 (thread2), I'll be logged in with username "zxc", and I have to do lots of processing (mostly html parsing) from there. Is this possible without stressing on memory usage? I'd like to keep my program memory usage under 10k.
[Code]...
View 7 Replies