I currently have a program that runs several "intense" queries. I added a textbox and presented status updates when a query was starting, eding and how many were left. This would suite my need, but the textbox doesn't actually display anything until all the queries are finished. It then displays all the updates at once. I'm assuming updating the textbox in another thread would solve this issue, and that is where I am lost. How can I use a thread that receives a message from the main form running the query and have it display it in the textbox?
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.
I just had a new, last-minute idea on to take on a task, so I am running to StackExchange for quick help.
What I want to do is execute a series of methods right in a row, each in their own threads. I want the application to wait until all of these threads are completed, after which the program will resume. It also has to use managed threading (thread pool).
What quick examples could you provide to help me along the way? If it's too complex, what things should I know about so that I can Google it on my own?
I have a main thread which is designed to be a batch processor - it spawns a series of 'child' threads from a loop (which can vary in terms of the no of items) - see below
[Code]...
However, each of the 'child' threads could take anywhere from milliseconds to about a minute to process - depending on the complexity of each calculation. There may also be a large number of child threads - e.g 100s. Creating large numbers of child threads is not efficient. I therefore want some way to effectively queue each child thread (and cancel if the process is taking too long to complete). Autoevents seems like one way of doing this, but the only examples I can find seem to assume there are two different processes on seperate threads, not one process being repeated.
im making a web browser which is intertwind in a project, but i cant get the progress bar to display the current percent of a page that is loaded, i want to have 10 segments, each standing for 10% of the total page loaded. So say a page is loaded 67%, 6 out of 10 of the segments will be shown.
I am trying to implement a BGW and want to report progress to a progress bar for my TextFieldParser program, sometimes if your opening very large files it takes a while and I would like the user to be able to see the progress and have some interaction so they know the program is still running I am a little hung up on what to in the reportprogress
I have:
worker.ReportProgress(0, myReader.ReadFields())
and its not doing anything, I didnt expect it too since ReadFields is an array
parser Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Dim worker As System.ComponentModel.BackgroundWorker = DirectCast(sender, System.ComponentModel.BackgroundWorker)
I copied the code here and translate the code to vb [URL]it is working fine but there is one small problem but I cannot solve? Here is my code: SyncClientVB Another Source The scenario is... the progress is reported by an event (OnCopyingFile event)
Public Sub OnCopyingFile(ByVal sender As Object, ByVal e As CopyingFileEventArgs) If pbFileTransfer.Value <> e.PercentCopied Then If txtCurrentFile.Text <> e.FilePath Then txtCurrentFile.Text = e.FilePath
[code]....
The problem is that it is ok when runned but when I click the form it starts to hang but in the console... it is still continuing.
I have two forms, when the user selects a button, the second form opens and an external executable begins an automated process. The point of the second form, is to only show the current progress of the automated tasks and closes when those tasks are completed.How would I use a progress bar to show the current progress of an action on a different form without knowing how long it will take?
frmMain - Allows user to pick process or combination of processes they want to run frmProcess - Shows progress of their selection I have three modules. Each runs a specific process. The frmMain allows the user to run any one of the three modules individually or all together in a single process (basically, runs the one after the other until done).
I have a filesystemwatcher which place files in a queue when they are created. From the queue the files are further processed (xml into SQL database).
The mechanism works fine, but I want to add a progress bar to follow the progress of the files in the queue: processing 1 of 10......2 of 10......3 of 10 etc.For testing, I created a batch file to simulate the creation of files, so the filesystemwatcher can to his work and place the files in the queue. When I tell the batchfile to simulate the creation of 20 files, I see that the amount of files in the queue change. For example;
In the app I'm currently making, I have two progress bars. One for current task being committed and the other is for overall progress.During runtime, I calculate how many tasks are being run and set that as the maximum. As each task completes, the progress bar is incremented by one.
I want the current task progress bar to show the progress of the current task. Some tasks can take a few minutes to complete so that progress bar works great. But, if the task is super quick, like editing registry keys, I see no progress at all.When I edit the registry, it basically goes like this:
It completes so quickly that I never see the bar even move.I also have each task report its name into a label and it skips ahead so quickly that I only see the first task name and the last.Is there any way to make this do a better job at reporting the progress?
I came across a problem in my program it takes too long to calculate the values needed (about 10 sec) .But thats not the problem you don't know when the program is working or not, as it just locks up until its finshed and I view that as a problem.
I need to be able to show the progress of this .I looked at using background Workers but I get exception "Object reference not set to an instance" I believe this is because the background worker cannot write values or something ,As it works will a normal handler.
I'm trying to display the progress in a progress bar, my app reads a csv file before it processes it to a database.and to set the maximum property of the Progress bar i need to detect the number of lines is there a way that im not aware of other than looping the file ?
I need to run TWO Threads in a web application, .NET. 3.5 Both methods MakeRedCars and MakeBlueCars need to run at the same time as both take 5 seconds. I have tried many example codes with very bad results. I dont need anymore than 2 threads. The main issue I am having is knowing how to wait till they are finished and also how to store the results from each.Each of the Methods do different things, one is a web request, one is a sql call.
Both methods return a list of(cars) for example do:
carList.addrange(MakeRedCars()) carList.addrange(MakeBlueCars()) for each car in carlist<br> response.write(car.colour + "<r>") next
I have implemented the answered below and with empty objects all works well, as soon as you hook in a database call that returns the data/objects studio does a JIT and crashes.
I can only run "so many" threads concurretnly, a notion which I have seen elsewhere.As a threading novoice, how can I determine the maximum number of threads to use? Or is this a "how long is a piece of string" question? What does it depends on? Hardware config or what?
I am having an issue where I need to implement a type of thread scheduling... I'm looking to implement a list of tasks, each with a set time that they need to execute, and after the time is up they will execute the respective code that goes with that task. I would use a timer based solution, however, I don't think that it would be very efficient. There will be a very large list of tasks, some of which need to be executed within seconds of being placed in the list.
I have 2 thread.One that put some data inside a list?the second that take out these data from the same list.what is the best "list" that allows one thread to put something inside and another one that take stuff out>
My application generates some background threads to perform some slow jobs (a cycle of ask for a long process to a server - wait - download the result).
I'm having a bit of an issue killing threads off and resetting my form. After starting the threads, everything runs fine. When I want to cancel the threads, the threads are all killed off "properly" using the Abortable Thread Pool, but how do I know that all the threads are dead? I've tried using both GetAvailableThreads and GetMinThreads compared against the thread count that should be running if they're all killed off, but I can't seem to get it to work. The only time I can get the GetAvailableThreads to return the "correct" number is if I freeze one thread and kill off the rest.
I have a GUI that is running for a form, let's call it Class xWindow. It has finished processing data and is simply waiting for the user to press a button, i.e. the main thread has nothing to do. Just before it finished processing, it kicked started something that has a callback function which occurs in a new thread (e.g. a system timer or a Bonjour callback to say that a service has been found on a port). This callback occurs within the xWindow class.
Suppose I have created 70 "rule-finder" objects, and I want to run each one on data.This is a time-consuming process.The new computers with the I7 chip can run 7 processes in parallel, and so I was thinking of running 7 threads at a time. Asone thread ends, I would add another, until all 70 objects are used. When the last rule-finder has completed, I would resume the main course of the program.
I'm making a Tabbed Web Browser, and I need favorites to add to this web browser, I was searching this forum for answers on how to do it and I ran into some threads tlaking about XML and how they are easily controlled, yet a little more complex. How do I do this? Where do I start?
Take a look at the code below. Here I create a thread, set its name, and start it:
Private Sub fileCreated(sender As Object, e As FileSystemEventArgs) Dim processFileThread As Thread = New Thread(AddressOf fileCreatedHelper) processFileThread.Name = e.FullPath processFileThread.Start() End Sub
This is the sub that is the thread: Private Sub fileCreatedHelper()
In a .NET 3.5 Winforms app, after a user provides a username and password, I set a custom principal in the CurrentPrincipal property like this:My.User.CurrentPrincipal = Service.GetPrincipal(username)This is done in a method that is called using Invoke, because the originating thread is not the UI thread:Invoke(New Action(AddressOf doLogin))But when I click on a button in the Winforms application, the CurrentPrincipal property has been reverted to its default, the current Windows user.Dim lPrincipal = My.User.CurrentPrincipal ' not my custom principalApparently, using Invoke while setting the principal does not solve the problem. Is there another way to set the CurrentPrincipal property for all threads in the application?