I started a threading project and want to manage my code so that it waits for all the threads to be finished before displaying to the user on the main UI thread that it has completed the task and waiting for the user... I've created a List to manage the threads and a global Boolean, "blnStop"...
I would like some advice on multi-threading. I currently utilize two threads, one for the GUI, and the other for calculations. This works well, but I want to improve my multi-threading techniques. Currently the data is with the calculation thread, and this occasionally this will cause a slow down. I want to put the data on its own thread. Giving me three threads, Data, UI, and Calculations. This should improve responsiveness, and not be overwhelmingly complex.
My problem is, this no longer fits into the parent child relationship well. All three threads need to interact with each other. My question is, what is the better way of dealing with more than two threads, when all the threads need to interact with each other. Should I pick one thread as the ultimate parent, say the data thread (I pick this one, because it seems to me this thread will be the most free.) Then have the calculation thread and the UI thread children of the data thread. Then when I have a need for the UI thread to explicitly call the calculation thread, I do this through a function in the data thread.
What's happening is, i see the threads stop after the function dwnld is completed. So i first check for the state (12 means background and unstarted). On case 12 start the thread and in case 16 (stopped) remove that particular thread and add a different thread like i add 10 above. Also there is a check when the i counter reaches last number, restart the whole loop by assigning i=0.
The program downloads some web pages, the url is passed from the listbox2. The geturl will pass the url and remove it from the list. So when the listbox is empty, exit the for loop. But the above code is running for only 11 times and it does not restart. I tried using a lable and goto but it simple hangs. What i want is to maintain 10 threads to keep downloading the web pages and when the list is empty, exit the function.
In one of my multi threading programs I cannot get my threads to abort. I have about 5 threads and the threads starts one at a time. By the time the fifth thread is started the program gets really slow. The program will not execute pass LoadWheelStn1.
Code:
Private Sub LoadWheelStn1() If sPortOpenFlag = "T" Then Dim MyThread1 As New Thread(AddressOf ThreadStn1)
I'm trying to make a multi-threading app which extracts the names from my site. I have 1000 pages celebrity related. The urls are on a listbox List1 and the number of threads are specified in TextBoxThreads I would like each thread take care of a coresponding url on list, when they finish go to the next one and so on (for each thread a url)
I've been raking my brain for quite some time on this. Is there any way with VB.NET that I can use multiple IP's in one instance of a program? For example, I want to be able to navigate to a web page 10 times at once, with each one using a different IP. I want them to be parallel (multi-threaded) rather than going sequentially. Going sequentially, I could just do the action, change the IP, do the action, change the IP.
I have a button and when it's clicked a HTTP request is sent out to a website to do a few things, but because its got to load the external resources it makes the interface frozen. I've moved the HTTP onto another thread using the follow
VB.NET Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Thread1 As New System.Threading.Thread(AddressOf check_accounts)
[Code]...
When i want to update a label that is on my main form (from the check_accounts sub). I know that isn't the right way, but i have no idea what the right way is. All the documentation i can find is very (excuse me for this) nerdy and really doesn't offer much insight on how to incorporate it into a project.
I want to be able to have a numericupdown box that can let the user change the amount of threads they want to use. I assume more threads allow the http requests to be done faster and at the same time?Also if i wanted to pause the HTTP requests, would the best method to use be pausing the thread?
I am working on an application that is taking pretty long to execute. I started playing with mutli-threading and it seems to have greatly sped up my app. Problem is that threads are still executing and the rest of the code executes before the threads finish. Here is my
I'm having some issues with parsing a lot of information into controls using winforms. I've tried adding threads/backgroundworkers, but they don't seem to work properly. To avoid the cross-thread exception, I had to add an invocation checker:If Me.InvokeRequired Then Me.Invoke(New MethodInvoker(AddressOf ParseSub()))This just freezes the form as it would without threading, but without the invoke checker I get cross thread exceptions because information from one thread is trying to be sent to another.
I'm adding multi-threading facilities for the first time. I have a function that is wrapped to be run in a separated thread. This function retrieves data (text) from a combobox and it works for sure without multi-threading.
When I call it as multi-threaded, I get the following error when I try to retrieve the data from the cmobobox: Cross-thread operation not valid: Control 'cmb1stBL' accessed from a thread other than the thread it was created on.
It looks like a restriction of thread-safety... I assume that the child thread cannot read from his parent, to make sure that he doesn't change his parent data. So how can I read the data from the combobox? Should I read the comoboxbox data before calling the child thread?
I have a need to build an app that will access about 10 websites and pass data to them, etc.I've read about something called multi-threading when searching Google. I've also seen people say that they use multiple browsers.Which route is better to use? I figure if you have to do some sort of multi-threading that you would access a single browser?
i want to process a list of strings using multiple threads. the first function pases it, it then send the result to another, and finally that one displays the final result in list view
dim items as new list(of string) private sub button_click() start parsing thread threadParse = New Thread(New ThreadStart(AddressOf startprocess)) threadParse.Start()
I have a need to build an app that will access about 10 websites and pass data to them, etc.I've read about something called multi-threading when searching Google. I've also seen people say that they use multiple browsers.Which route is better to use? I figure if you have to do some sort of multi-threading that you would access a single browser?Not sure which way I should approach this app.
When the program starts, it checks for the amount of threads the user wants to use to download files with. The threads are then created. When the user chooses a file to download, the threads begin grabbing the file until it's fully downloaded.The problem is, some threads stall right from the start, & just sit there doing nothing.The global work variable is Sync-Locked, then quickly released by each instance, & to my eyes, there is nothing wrong.They are all instances of the same class, & do the exact same thing, so why is it that some run, & others don't?VB.NET is the programming language. They are looping Background workers.I would really like to know why some run, & others don't.btw... they have quick non-blocking sleeps, as well as blocking sleeps to allow others the chance to run (proprietary non-blocking DLL).So all i'm left to think on is that Microsoft's process queuing has some type of bug going on in there someplace....or is there a way to do multiple looping threads where they're guaranteed to run?
I have one applicatin developed in my ap i have two main functionalities
1)Copyig Folders & Files from one source to destination
2) And I am showing status of copying in richtextbox and progrss with progress bar
Here i need to use threading bcz i am copying files from one server to another server and some large size files while copying my application always gone to stuck and i am not able to see status of copying and progressbar so how i use threading in my applicatio to put two functionalitis in two seperate threads.
I need to be able to call a C++ dll that takes a long time (possibly infinte, it relies on user input)to execute. Im calling this through VB. My VB GUI freezes up when this happens, and I would like to keep the GUI responsive, so that the user can stop this possibly infinte loop. A bit of background, the C++ is trying to keep score on a snooker table using a webcam, and while the VB scoreboard updates easily, I would like to script it so that the analysis is almost continuous, while still allowing the user to interact. Currently the project requires the user to press a button to start the shot analysis, but it would be preferable if the program scripted itself. I have only realised this problem now and the deadline is very soon.
Update: Our lecturer suggested an option to solve the problem, but it would appear that most options here and the one he suggested will not work for us as the processing time required for the webcam image capture is too great to handle due to hardware constraints.
I know .Net and C# pretty well, but never even looked at VB.My problem is: our Win32 COM library is used by a number of clients, and we see that the number of failures is higher for those who use the library from VB (both VB and VB.NET) than for those who use C++, C# or Delphi. One thing about our library is that it is supposed to be used from one thread only - can some threading magic by VB be the cause of failures?
Clients tell us the do not create any extra threads on their own.
I'm creating a password hash recovery tool that uses brute force. I have the brute force algorithm run in a background worker. It all works, but some similar apps I tried out have performance ~100x bigger then my app. (mine does 50k keys/second, some others do 5m keys/second or more.)I realize this is partly caused by using a .Net language, but I suspect there are ways to significantly speed up the brute force. A lot of ppl say I should use multi threading, but how is this done in practice? Splitting up the passwords to check would slow down my app I think.
I have a button click event and inside I do a lot of work. While I am doing this work (not from the UI project) I want to send messages to the UI to display to the user.
[Code]...
and inside DoMyWork which is in another assembly i can call SendMessage which writes to the textbox. The messages will only display though when DoMyWork is complete. How can I update TextBox1.Text on the fly without putting DoMyWork on a BackGround thread or do i have to put it on a BackGround thread? I do actually want to block the user from doing anything while DoMyWork is running
I made a simple Form1, with Text.Box1 (starting value=1) and Text.Box2 (starting value = 100000), as shown in the attachment: I wanted that, when the Form loads,value of Text.Box1 keeps on increasing by 2 and value of Text.Box2 keeps on
One of our products consists of two different services:
- main service that launched at the startup of Wndows - GUI that launched manualy when needed
GUI is representing data from main service.Main service starts X amount of threads that do some work and gether data.Some minor data and adresses to threads are stored in chache memory, so that GUI will have access to them.Everything works fine in 99% cases, but in some rare cases GUI do not display any data when used on machines with multiple processors (not milti-core). My guess is that it can't access the memory -> probably OS "decided" to run main service on one processor and GUI on another one.Is there any way to access the memory alocated for one processor from the service that runs on another processor?Or is there simple and secure way (same application will be also runing on single processor machines) to specify both services to run on the same processor?
I have a question regarding the synchronization in multi threading.
I have a function called send which i am calling in a for loop for every data row.
This function creates threads to send emails to different people.
Public Sub send(ByVal Conn As Data.DataRow, ByVal job As Data.DataRow) MyThread = New Thread(AddressOf Me.start) MyThread.Start() End Sub
But every thread created is writing to a log file at different points of time. So, there are very high chances that 2 threads write to the same file at the same time. So, do i need to use any kind of synchronization mechanisms here ? or is it fine without them ?
I am working on adding multi-threading to my application. I have done two applications using multi-threading following a tutorial of sorts, and modifying the code to "get my feet wet."
This is the first time I am trying multi-threading within my own application, and I feel I should be beyond this type of problem, but after a 3 hour search on the forums, I can not find a solution, so I am posting this thread.
using multi-threading in my application.Basically what i am trying to do from within a form event is initiate a class instance and then run a function of that class (via a thread) that changes certain member values of that class.Those class member values are then used to update values on the main form.Ive created a simple example below but i cant seem to get it to work.The class values are not updating and im struggling to understand how this threading works.
Class FormMain Private Sub BtnClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles myformbtn.Click() Dim myFileCounter As New FileCounter()
I'm creating an app that needs to navigate to multiple websites, logs me in and then submits my documentation.I've read that multi-threading can handle this task but then I've read something about backgroundworker.