VS 2008 - Right Way Of Multithreading ?
Jun 8, 2010what is the right way of Multithreading in visual studio 2008.
View 1 Replieswhat is the right way of Multithreading in visual studio 2008.
View 1 RepliesI m making a project in which it check website about there status (Online / Offline) through there status code and when project is in processing it hang's until the whole line of code complete
[Code]...
I want to download some imagefile from a multilinetextbox and right now i m using this code
Multiline textbox contains :
http://sitename.com/image/1.jpg
http://sitename.com/image/2.jpg
http://sitename.com/image/3.jpg
http://sitename.com/image/4.jpg
[Code]...
Im trying to put in a list of urls, start 2 new threads and in each thread dynamically add a webbrowser that will navigate to the url.Here is the code ive got so far:
This is after I click 'start'
[Code]...
I am using RaiseEvent in a thread and I pass a value to it and try to set a control's text to the value. Except I get a cross-thread error which is expected. I could invoke the control, but I don't want to have to do that.
My question is, is there a way to invoke/delegate the RaiseEvent itself so it will work on the ui thread without doing anything else?
I have created a background worker using a tutorial. I understand some basic stuff like how to update a label or a progress bar from inside of it. The purpose of this background worker is setup a bunch of variables that are going to be used by several other background workers later. The variables i am setting up are 6 different lists and a multi-dimensional array. The code looks like this for the background worker at the moment.
Private Sub My_BgWorker_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles My_BgWorker.DoWork
For i As Integer = 0 To m_CountTo
[code]....
I would normally use the persons.add to add something to the list, but I'm having a really hard time wrapping my brain around an easy way inside of the backgroundworker to add new values to several different lists(which are going to vary in amount of data values). Is there an easy way to do this? I'm used to just having invokes at the top of a sub to do this but those don't seem to work inside of a dowork sub.
I have a function which has multiple arguments, but takes around 30 seconds to complete. Is it at all possible to put it under a thread?
VB.NET
Private Overloads Function XLSParse(ByVal WorkBook As String, ByVal CellFrom As String, ByVal CellTo As String) As Boolean
[Code].....
And it runs fine because it doesn't have any arguments. So is it possible to run a function on a seperate thread if it has arguments?
I'm working on a class that has multithreading in it, this class has events that are being raised (raiseevent) in a new created threads within the class, for example:
[Code]...
Now when I load this example application an error is raised up saying that there is a cross thread error (Cross-Thread operation not valid control 'Text1' accessed from a thread other than the thread it was created on.) Now I don't want to handle this error within my form (editing the code in the form) what I want to do is to fix this problem within the class (I guess something with invoke?)
vb
Public Class download
Public Event AmountDownloadedChanged(ByVal iNewProgress As String, ByVal rowno As Integer)
[Code].....
How I can download Multiple file's using multithreading and
How I will display progress report in Datagridview Column ("Progress")
I have been trying to create good multithreading programs and it is not working well considering the use of global variables, local variables etc and thread safe controls. I have not found a good way of doing it since it seemed to be not as efficient as just running it on a single thread.
The program accesses facebook and twitter api, parses etc. and I am wondering if I can just create new tasks and map the program project file and fire new instances of the project. Someone this using the taskfactory in 2010 but I thought this was just the same as the threadpool. on this: create windows services and set them to run on task scheduler??
Dim length As Integer
Dim intOffset As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim clsRequest As System.Net.FtpWebRequest = _
[code]....
What I'm trying to do is get the bytes already uploaded. I cannot seem to do this.Another problem: When uploading, the form will not move or change Label1.text. When pbUpload.value == 100, THEN it changes to a different number than label3.text.
What is multithreading and how do i do it in vb.net?
View 2 RepliesI am using an Application server for calling Oracle Reports and I have a URL to call the report. When the report is called the server converts it into PDF but when report contains large data it takes a lot of time to load. I want to do in asp.net that when I call the report url it opens the PDF file and copies it into the root of my web folder. The next time when I call the URL it opens the PDF file and creates a new PDF on backend for next call. I have made this function to download file
[Code]....
In which situations we can do the multithreading and deadlock concepts. can give some examples
View 4 RepliesBasically I am making a proxy testing program. A user can supply a list of proxies to test. What i want to be able to do is have them be able to specify how many threads they want to run. Then have the program go through the list testing each one using the amount of threads supplied. Really not sure even where to start on this. Threadpooling?
View 3 RepliesWhat does common data or data that's in a common, look and is treated by multithreading? I'm quite aware that acess to such data would have to be synchronized, but beyond that is it acessible?
"MODERN PROGRAMMING is deficient in elementary ways BECAUSE of problems INTRODUCED by MODERN PROGRAMMING." Me
I have a class with a background worker in it that does some tasks on a separate thread. I want to fire some events from the background worker thread to the 'main thread' of the class, so that when using this class your not obliged to go make invoke calls for every event handler your using.I'm at a loss of how to do this though. When having a similar problem in a form of usercontrol I always use Me.Invoke, but this method is not present in a class inheriting system.object.
View 1 RepliesI have a screen that checks for alerts every 30 seconds by looking up outstanding issues from a database.When there is an alert, an audio file is played depending on the alert.It takes 1-2 seconds to grab this audio file which caused an issue with global screen freezing, so I added multithreading where it plays the sound file. This seemed to work fine.However I am new to multithreading and am not sure if I'm working with it efficiently..I have simply declared the sound-playing function as a thread at the top:[code]I am unsure if starting and aborting the thread is the right way to do it. However if I suspend or make the thread sleep I would have to determine whether it has been run before.
View 18 RepliesI have read many articles on multithreading over the past few days and so far I'm fairly comfortable with how it works. I am now working on my actual application, and have come across a few design issues that I'm hoping somebody has experience with.The basic premise of the application is simple. A database filled with files names and a "converted" field that has a 1 or a 2 in it (1 for unconverted, 2 for converted). The application loops through every record where "converted" = 1, retrieve the file and convert it.
My single threaded application works fine, except its far too slow. Due to the huge amount of rows in the database (4 million+) and the time constraints on the project, I have decided to run as many threads as the hardware can allow to cut down on the timings.So, the dilemma is accessing database records and which threads should grab which record and how.
I have a function in my program that adjust sales for multiple days. Sometimes it needs to adjust up to 3 months and the tasks takes a while so I decided to split up the work between multiple threads. The way I have it working is say I need to adjust 3 months. I have the first thread adjust sales for the 1st month, the second thread adjust sales for the 2nd month and finally a third thread that will adjust sales for the 3rd month. Since all three threads are performing the same tasks except for different date range they use the same procedures. Within those procedures I make a call to the database to extract the sales for the given month. At some point it seems like the threads start to use the same SQL Data Objects because I am receiving the below error."There is already an open DataReader associated with this Command which must be closed first."Below is the first procedure that is ran by each thread up to the line where it errors out.
Private Sub Process_Adjustments(ByRef objAdjustBillCodeThreadParameters As clsAdjustBillCodeThreadParameters)
Dim cmd As SqlClient.SqlCommand
[code]....
So all three threads call this subroutine and the first thread does the data fill with no issues and then sometimes even the second thread does the data fill with no issue but then the third thread crashes and produces the above error. It seems as though the threads are sharing the same SQL Objects when all objects are local to the sub and I always thought each thread had it's own memory to work with. So I thought each thread would call the sub create it's own objects in memory, but that does not seem like what it's doing. I have other multithreading processes in my application that work perfectly fine, this is the first time I am attempting to multithread in this manner where I am using the same procedure within multiple threads.
Just thought of something that I might be doing wrong. The subroutine in question is in the same class where the threads are created. Should the subroutine be in it's own class, and therefore each instantiation of that class?
I try to use Multithreading with VB 2005. I added a Listbox to main form and i tried to fill ListBox with 2 threads. When i executed code it told me that this is unsafety operation becasuse of ListBox is created with Main(Form1) form.
Is there anybody who has such simple multithreading example with Mutex or such lock mechanism?
I'm using the WIA Aut. Library [URL] , trying to capture photos from 5 digital cameras (Nikon D90) USB-connected to my pc. Now, I partially achieved my goal, what I do is:
- loop through the attached devices, connecting to every camera;
- fotocamera.ExecuteCommand (WIA.CommandID.wiaCommandTakePicture) ;
- other image processing operations...
Everything works fine but... the workflow is camera1 -> connect -> grab pic. => camera 2 -> connect -> grab pic. => camera 3.....
[Code]...
I'm using the WIA Aut. Library [URL] trying to capture photos from 5 digital cameras (Nikon D90) USB-connected to my pc. Now, I partially achieved my goal, what I do is:
- loop through the attached devices, connecting to every camera;
- fotocamera.ExecuteCommand (WIA.CommandID.wiaCommandTakePicture) ;
- other image processing operations...
Everything works fine but... the workflow is camera1 -> connect -> grab pic. => camera 2 -> connect -> grab pic. => camera 3.....What I'd like is to make them shoot all at the same moment (...why? well, D90 waits around 1 sec. after a shoot... 1sec * 12 cameras * 500 photo sessions.. :'( )I told myself... what's the problem? You can create "shooting-threads" while looping through the device then launch 'em all.Done.It's still in a 'serial' way... :-(((Why? is executeCommand() a synchronized method? If I madly-fast click on two 'grab pictures' button of windows XP WIA dialog it works.. Is there something about .NET multithreading I don't know?
My application will creates an Excel from DB, creating an excel file takes few minutes of time and till that time the user dont want to wait for the excel to complete, he should start working with the application. Once the excel have been completed the appilcation should po-up message saying, 'Report Sucess'. can any one tell me how to do this, whtr background thread will help me in this ?
View 1 RepliesMy question is to add two numbers up using threads or multithreading. Here is what I have:
Module Module1
Sub ThreadA()
Dim I As Integer[code].....
Is there a way I can use this somehow to add two numbers up?
I am looking into using a producerconsumer threading pattern to run through a list of strings that i retrieve from a database and then am going to run powershell commands against. As the powershell commands can be quite intensive i only want to spawn 3 threads at a time and then wait for one thread to finish before doing anymore. I looked into the treadpool but it looks like it is used for more lightweight processing.
View 3 RepliesI want to download some imagefile from a multilinetextbox and right now i m using this code
Multiline textbox contains :
[URL]
Code 1 :
Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ary() As String = TextBox2.Text.Split(Environment.NewLine)
[Code]....
because in both cases it will download file one by one and i want to do my job as fast as possible by sharing the multilinetextbox data among set of thread's but how to do i dunno
Like if i multilinetextbox contain 100 image file link and i want to run 3 thread at a time then these 3 thread will share/Access the multilinetextbox data what will be the my final code ?
I am developing an FTP program which: Watches a folder. If a new file is dropped there then upload it. Tells user if uploading and when complete. All the above works, however I wan to add the items to a listbox that are being uploaded. So if I dropped 3 items there it would look like :
Upload Listbox:
cake.jpg
myExcelFile.xls
woot.docxAnd as each one is done, or new files are added it removes them or adds them.
I tried using que, but with no luck as the program just hangs whilst it uploads. So I had a search and looked into multithreading and I tried to implement it, but I can't get it to work as it gives me some 'delegate signature' related error message as you can't pass in values when trying to use 'AddressOf'.
Here is my code for the The .created sub:
Public Sub FSystemWatcher_Created(ByVal sender As System.Object, ByVal e As System.IO.FileSystemEventArgs) Handles FSystemWatcher.Created
'if any file created add fullpath to the listbox
ChangeLog.Items.Add("Created: " & e.Name)
QueueListBox.Items.Add(e.Name)
[Code] .....
what i did was i use a select statement in opening multiple IE just for testing but the main function is what you put number on a textbox then the number the IE's will open for example i put 100 on textbox then when i click a button then 100 IE's will open so if im going to use select statement when opening 100 IE my code will be crazy... heres my sample code..
[Code]...
Here is my code: Imports System.Threading Imports System.IO
[Code]...