VS 2008 Delegates And Backgroundworker?
Jun 4, 2010I am having trouble with getting a delegate to work properly.Here's my
[Code]...
I am having trouble with getting a delegate to work properly.Here's my
[Code]...
What are Delegates and Multicast Delegates in VB.NET? How do I use them? provide a simple example to illustrate the concept.
View 1 Replieswell i want all my textbox's event- keypress should be called by using Delegate
The Function i need to preform on them is only Numeric
My code
Public Delegate Function mydelegate() As Char
Public Function key(ByVal e As System.Windows.Forms.KeyPressEventArgs) As Char
Dim ch As Char = e.KeyChar
[Code]....
The problem comes when i use this code it surely gonna restrict me entering the alpha characters but i m facing problem is i can enter only a single digit number
i.e when i try to enter 45 it's simpley don't expect it only value which it is accepting is [1],[2] what i want it should accept the value's in two digits,three digits and so on..
in my button click event i ececure
If BackgroundWorker4.IsBusy Then
BackgroundWorker1.CancelAsync()
End If[code]....
after proceess completed if press the button again.i got the following error msg
This BackgroundWorker is currently busy and cannot run multiple tasks concurrently.
I was messing around with the listview Control first,, And when i got it working i thought what's this backgroundworker thing,,so i read up on what info MS had on the MSDN page..and slapped it in here..and i thought i had it working ok until i tried to move my project application to the side to reply to a instant message i got..and then i noticed that it froze up .and looked like it was using alot of system resources,But wait let me back up just a bit.originally i was trying it with a fairly small number of items, and then i seen on here where someone had posted a rather large index for testing his app with,,and while trying to load that list that's when the issue was noticed i don't really plan on loading a list as big as that test index was but, I would still like to know why the program did what it did using the code below.I'm not really asking for it to be too altered, i kinda like all the controls i have in it the moment,, and the way it loaded as well.
[code]...
I am getting a list of computer on my network. I want to run this code in the background but I keep getting an error. How do I delegate the TreeView.Error :The action being performed on this control is being called from the wrong thread
Dim rip As Integer
For rip = 1 To 254
Application.DoEvents()
If My.Computer.Network.Ping(IPArray(0) & "." & IPArray(1) & "." & IPArray(2) & "." & rip, 60) Then
[code]....
I'm trying to do some calculations with the backgroundworker and display a window with a loading animation on it. The calculation is working but the loading animation isnt moving.MeasurePolygons is the Sub that does the calculations and updates the variables to hold the values of the calculations which works fine. Its just the loading screen. It pops up as it should but just doesnt animate
Private Sub ClickEvent()
BackgroundWorker1.RunWorkerAsync()
If Window1.frmLoading Is Nothing Then
[code].....
I have to write a program that retrieve record from database, but everytime the screen will look like getting hang when getting large row record.I using the backgroundworker to prevent screen hang when retrieving record from database but why my progress not working when in progress? It only will show when the transaction done..
[Code]...
I have some classes right now that I have that I reuse for Client/Server programming. I'm using Thread in these classes though for monitoring for things being written to the network streams and stuff like that. I'm just not sure if I should be using the background worker class instead. I'm also using TCPClient and Listener classes, should I be using sockets directly? I guess it would all depend on the flexibility I would need in a given application's specs.
[Code]...
i list all sub-directories in backgroundworker :
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
If My.Computer.FileSystem.DirectoryExists(My.Settings.path) = True Then
[code].....
I am trying to run a database query in a BGW to fill a DataGridView with the data that is returned by the query. The code I came up with works in that it executes the query & fills the DGV but it totally freezes the form & all controls on the form. Successive clicking on the form or any controls causes "Not Responding" to show in the title bar & I have to terminate the program from the IDE. If I run the query in a regular subroutine it works fine. Can somebody please review my code to see where I might be going astray? I've never used a BGW before so maybe I'm doing it all wrong.
[Code]...
I don't have muc experience with backgroundworkers, but this is basicalmly what I want it to do:
- Copy files from a list
- Add Succes/Fail to a listview
- Report Progress
Private Sub BackgroundWorker2_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork
'2 groups
Dim Succes As New ListViewGroup("Succes")
[code]....
It doesn't copy the files, nor does it report progress.
How to make backgroundworker work on the login module??My form have progressbar with Marquee style...
Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click
lblProgress.Visible = True
[code].....
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]....
Ive read through tons of forums, but my Backgroundworker1.CancelAsync still isn't working.I have Form1 that shows Form3(see code).when btn_submit is clicked on Form3 it runs the backgroundworker, copies a file from one place to another, and shows the progress in the progressbar.Form3 contains: lbl_message, btn_submit, btn_cancel, ProgressBar1, BackgroundWorker1 (with Workersupportcancelation = true.)When i click on the btn_cancel the copy continues, so i assume the backgroundworker has not stopped.[code]
View 2 RepliesOf course, it's nice enough to unfreeze itself when the task is completed. I have must at looked at this code for 2 hours, and still can't find the bug.
Imports System.Threading
Public Class Form1
Dim PathAmount As Integer = 0
[code]......
I am trying to use the background worker to keep my application responsive during the calculations it does. All I need is one to calculate and the other to count time which I use a timer for. But when I try to use a progress bar as well as I want to see the progress it gives me an InvalidOperationException: Cross-thread operation not valid: Control 'ProgressBar1' accessed from a thread other than the thread it was created on. I need this to work, how could I use a component from outside the background worker? This is the background worker bit:
[Code]....
I am trying to make a graphics program with mousewheel-controlled zooming using GDI+. My plan is to provide rapid feedback, such as a low resolution render or even just a bounding rectangle, followed by a full resolution render as soon as possible afterwards. It seems logical to me to try a BackgroundWorker for the latter task. This is my first attempt to use one of these, or any other way of multithreading for that matter. Mousewheel events can follow one another much more quickly than I can render to the screen. That means I need to kill any rendering process that is already running and start a new one with the latest value of the zoom scaling factor.[code]The above class coexists with a DrawingSurface class, a UserControl which listens for the ProvideFeedback and ScaledImageReady events and paints the image accordingly. It also raises mouse/keyboard events for the zoom and other tools to deal with. My problem arises in the DO loop waiting for Cancellation to finish. The zooming routine works for one or maybe half a dozen renders, depending on the image size, but then it hangs in that loop and never comes out.
View 2 RepliesI have created a application that creates a windows schedule task that connects to a FTP server and uploads/synchronize selected files and folders from your computer. After the user has selected all needed information and click continue, a form with a progressbar (Marquee) should appear. The application will then perform different tasks needed for the schedule to be completed. When all needed tasks are finished i want the progressForm to close and the main form will show you a summary of the newly created task.
I run the tasks in the main thread and assign a backgroundworker for the porgressFrom. i have have also tried to run the taks in a backgroundworker.
Button Continue Click Event.
Private Sub btn_Continue_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Continue.Click
Try
[Code]....
Can a BackgroundWorker call additional subs? In my program I am connectiong to an OPC Server. I am doing some AsynReads, which in themselves don't take anytime. But Once I get the AsyncReadComplete returned, I want to do the AsyncRead right away. Basically I need to Loop them. The problem now is that while it is doing this, Everything is unresponsive, because it is just going through the loop. So to perhaps rephrase the question, If the BackgroundWorker initiates a process (in this case AsyncRed) would the returned AsyncReadComplete be apart of the BackgroundWorker or seperate Thread?
View 7 RepliesI'm trying to add information to a ListView from a BackgroundWorker thread. I thought I could do this in this manner:
vb.net
Private Delegate Sub _ListView(ByVal lvi As ListViewItem)
Public Sub test(ByVal lvi As ListViewItem)
[Code].....
When I attempt to run the "test" sub the BackgroundWorker, I get an error:
Argument not specified for parameter 'lvi' of 'Public Syb test(lvi as System.Windows.Forms.ListViewItem)'.
Is there something I need to specify when declaring the sub, or in the sub itself?
I am using a background worker's work method to create a new form and show it.
But it throws this error
System.Threading.ThreadStateException was unhandled by user code
Message="Current thread must be set to single thread apartment (STA) mode before OLE calls can be made. Ensure that your Main function has STAThreadAttribute marked on it."
[Code]....
So, my code for testing is quite simple...
Public Class sandbox
Dim hits As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
End Sub
[Code]...
from the button1 click..if i run the: test...it works fine.but if i call it from a backgroundworker..it doesnt do anything.I'm going to assume this is a limitation of the backgroundworker...is there a workaround?
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.
I have a Worker.cs in a ZScreenLib DLL that does the following: 1. takes ZScreenGUI.cs (a Windows Form) as an argument 2. creates a Background Worker object and does everything 3. reports progress to the ZScreenGUI form via BackgroundWorker.ReportProgressThe user can create as many instances as possible of Worker.cs class and do the background worker tasks Now I need to create another Windows form called ZScreenCLI.cs and wish to make use of this Worker.cs class because ZScreenCLI and ZScreenGUI are pretty much the same but ZScreenCLI has much less features compared to ZScreenGUI. My question is, how do you manage to report progress to ZScreenCLI? The ReportProgress methods are tied with the controls in ZScreenGUI form. Obviously there is a problem with the concept I am using
View 4 RepliesI'm having problems executing this command as a BackgroundWorker. I wrote a license verification program that executes upon loading so I wanted do that in the background so that the program opens up right away and not wait for it to complete execution. The license verification codes work when it directly loads but when I put it in a BackgroundWorker it stalls at this command. WebBrowser1.Document.GetElementsByTagName("input") doesn't seem to execute in BackgroundWorker. I put a test msgbox before and after this command it and the after msgbox doesn't execute.Dim ElementCollection1 As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("input")
View 3 RepliesI would like to know what are the usages for Threading or BackgroundWorker, and their implementations.I currently am running a UDP program, but the server freezes until the client sends the packet, which momentarily unfreezes the server, and then re freezes it.I have looked at the MSDN for them and they seem complicated :l
View 26 RepliesI am trying to access the checked state of a CheckBox from a BackGroundWorker thread. I am utilizing properties and it seemed to work just fine. However, I'm using 10-15 CheckBoxes and I think using the InvokeRequired property would probably be best. I've looked over JMC's thread that talks about how to access controls from the worker thread a bunch of different times and I can't seem to grasp the concepts. When it comes to the InvokeRequired property, I suppose I understand why it is needed. But I'm not sure if I understand it completely.
From the example that JMC provides:
vb.net
Private Sub ResetTextBoxText()
If Me.TextBox1.InvokeRequired Then
Me.TextBox1.Invoke(New MethodInvoker(AddressOf ResetTextBoxText))
Else
Me.TextBox1.ResetText()
End If
End Sub
If I'm not mistaken, this tells us that if invocation is required to access the control, then we access via the MethodInvoker if not, then we just access to directly? So, if I need to check the checked state of a check box, I know I can just put a conditional statement after the Else line if I can access it directly. But, if I can't how would I use MethodInvoker to check the checked state? And then, when calling it from the worker thread, would I just call the sub?
I have a form with Check Boxes on it and a second form that holds functions and a Backgroundworker.When a button is pressed on the first form, the second form loads and then runs the functions that relate to the appropriate Check Boxes.Doing it this way causes the second form to become inaccessible. I decided to run my code in the Backgroundworker's DoWork event and then call the RunWorkerAsync method in my form's Activated event. Before using the Backgroundworker, everything worked fine and now it doesn't.I assume the issue is with the Backgroundworker not being able to access controls on another thread.In debug mode,it automatically throws an exception, but doesn't error out when using the Release version, making me assume it's a legal call. But, if it's a legal call, then why can't I access the controls?
View 10 Replies[URL]
Occurs when ReportProgress is called.
but in my code ProgressChanged event doesn't fire after this line bgwBckp.ReportProgress(1)
[Code].....