Multithreading - Running A Thread From Within A .net Webservice?
Oct 17, 2010
I have a webservice with a webmethod that accepts an XML from a client via POST (don't know if this really matters), validates XML and the data inside, and then processes the XML and returns an answer to the client.At moment, I have a problem with large XMLs; it takes too long for the XML preprocessing to finish, and the clients timeout expires.
Instead of increasing the timeout of the client I thought I could maybe separate the XML validation from the XML processing by starting a new thread after the validation which processes the XML and at the same time return the validation answer to the client. (the processing won't start if the XML is not valid.
Now my question is: Will opening the new thread increase memory usage? normally I would guess it will (for normal applications) but here I am returning an answer to the client and essentially ending the process of the main thread.
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
[code]....
View 1 Replies
ADVERTISEMENT
Dec 3, 2009
I have a webservice with a webmethod that accepts an XML from a client via POST (don't know if this really matters), validates XML and the data inside, and then processes the XML and returns an answer to the client.At moment, I have a problem with large XMLs; it takes too long for the XML preprocessing to finish, and the clients timeout expires.Instead of increasing the timeout of the client I thought I could maybe separate the XML validation from the XML processing by starting a new thread after the validation which processes the XML and at the same time return the validation answer to the client. (the processi
View 10 Replies
Mar 23, 2012
I created a background thread that get's data and returns it to the main thread; this works. Now I want to be able to stop the SQL request from the main thread (probably on a button click). This is my test code for creating the thread (working):
[Code]....
How can I access the background thread to stop the query on demand? Do I need to set a flag on the main thread telling the background thread to stop running then have the background thread poll the main thread at intervals? I was trying to look for an example but I wasn't able to find a good one.
View 1 Replies
Jan 21, 2012
It's easy to do so in objective c but I do not know how to do so in vb.net update:I know about control.invoke. But control.invoke requires a control that may change from program to program. What would be the easier way?So yes program is winform. However I need a solution that does not depend on any specific control. If that's the case actually I do not need things to be run on main thread do I?
View 2 Replies
Jan 14, 2011
I have on timer thread that needs to pass every time a different data to another running thread to make the calculations.
View 5 Replies
Mar 13, 2012
I am running code in a thread upon opening an Excel workbook that takes some time to execute. If I attempt to close the workbook while the thread is still executing, giving me the standard prompt to Save or cancel, my thread is interrupted (not sure if "interrupted" is technically the right term) when I click Cancel. More generally, it seems that UI interactions/updates cause the thread to be interrupted.
Is there a way to either 1) prevent the thread from being halted by a UI update/user interaction, or 2) allow the thread to resume after being interrupted?Nothing fancy about the code:
Private Shared Sub Test()
Dim t As New Thread(AddressOf DoSomethingThatTakesAWhile)
t.Start()
End Sub
View 1 Replies
Jun 23, 2012
According to the answers to another question, the VB user interface cannot be updated if the thread that created it is busy: hence why big computational jobs usually have to go in a background task.Here's what's mystifying then. I have the following code. It's called over in-process COM, like this
client calls showform()
client does loads of work, freezing up its own UI in the process
client finishes work, returns to updating its own UI
At step 2, the VB form is there but frozen - you can't interact with it. At step 3, the VB form becomes usable. But why is this? Surely the thread of execution has returned to the client? If the client is somehow handling events for the form, by what magic did it know what events to handle and where to send them?
[Code]...
View 2 Replies
Feb 10, 2011
I'm trying to safely kill a thread. In my button click I have:
try
dim bar as new foo()
dim mythread as New System.Threading.Thread(AddressOf bar.Start)
mythread.Start()
[code]....
When it goes to abort the thread I still get a thread abort error.
View 1 Replies
Apr 29, 2011
I have this code:
Public Sub Submit(
ByVal reasonId As Integer,
ByVal email As String,
ByVal message As String
)
'[Argument validation code here]
EmailController.sendMail(reasonId, email, message)
End Sub
I want to spin this off in a new thread so Submit() returns right after creating and start the thread.In C#, I could do something like this:new Thread(() => { EmailController.sendMail(reasonId, email, message)}).Start();
View 1 Replies
Jun 11, 2009
I have an application which has a thread running which makes constant calls to a server. Occasionally, the calls become unresponsive, and I would like to stop and then restart the thread.How do I do this? I can't use mythread.Abort() because then it doesn't allow me to start the thread again.
View 5 Replies
Jan 24, 2012
I am making use of a serial port in a class. I am raising an event from that class to my form calling the class. Event contains data received... I wish to simply populate a textbox from the raised event.Now I am not specifically creating a seperate thread, but I get the normal crossthreading error when trying to update my textbox on the UI, so my assumption is that the serial port and its internal methods probably creates its own threads...Regardless, I am a bit confused as to how to properly implement an invoke, from my main form, pointing to the thread in the instantiated class...
Dim WithEvents tmpRS232 As New clsRS232
Private Sub but_txt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_txt.Click
tmpRS232.Set_com_port("COM8", 38400)
[code]....
View 2 Replies
Apr 20, 2011
How do I ensure that a process has a thread on each processor?
What I am asking is how do I address processors to ensure a thread is running on it?
View 8 Replies
Aug 19, 2009
I have a vb.net application that uses threads to asynchronously process some tasks in a "Scheduled Task" (console application).We are limiting this app to run 10 threads at once, like so:
(pseudo-code)
- create a generic list of 10 threads
- spawn off the threadproc for each one
- do a thread.join statement for each thread to wait for the longest running one to complete.
What i am finding is that if the code called by the threadproc contains any "Debug.Writeline" or "Trace.Traceinformation" statements, the thread hangs. I can see the thread in the Debug - Windows - Threads window, and switch to it, but it highlights the debug.writeline statement and never gets past it. is there something special about the Debug or Trace statements that make them non-thread-safe? Any idea why this would hang things up? If I leave the debug statement in, the thread never completes. If I take the debug statement out, the thread completes in less than 5 seconds.
View 3 Replies
Dec 1, 2011
I am building a code library to be used by a 3rd party developer. Neither my code or the 3rd party have any UI controls involved. It's purpose is a combination of providing the ability to look up information from a database while at the same time polling it and throwing events when a set of conditions are met. Naturally the only way it's going to be responsive to the 3rd party library's commands is via multithreading since everything in a single thread stops once you start polling the database.
The sub I am using is part of an object that I create in the main thread and attempt to have it run via a thread, when a condition is met I have it update a property in that object, throw the event (or execute a callback in my latest attempt) and then attempt to have a simulator for the 3rd party control read the property.It's easy to setup the multithreading part, the hard part appears to be throwing the event so it is seen in the original thread and the data is available there. Any attempt to do this generates a cross thread error when the data is read.
I attempted to use delegates and calling methods asynchronously and using the callback function but still get cross threading errors.Is my only possiblity to use a background worker, using either the progress changed or runworker completed events? Even then am I going to be able to set the property in the function from one thread and read it in another?
View 1 Replies
Aug 13, 2011
I'm having difficulty in working with MultiThreading.I want to add to my project a ProgressBar to show the working flow.I'm getting combinations from many Strings, the number of combination can be really big, so it takes few seconds or minutes.
View 6 Replies
Oct 30, 2011
The error occurs at: For i As Integer = 0 To txt_load.Lines.Count - 1..The project exists of 2 rtb's. One with a list of lines. The other will be filled with the converted lines. The main reason that I use it is that I want to use the app during the conversion. The second is that I want to learn how this works.[code]
View 9 Replies
Jun 4, 2011
Right now I have a Email class that has all the properties of an email to send it, and then a SendEmail function which takes those properties and uses them in the following
Public Function SendEmail()
'Exception handling
Try
[Code]....
The loop goes through each email in the array to process its email, however with the multithreaded function I cannot call
"EmailArray(i).ThreadSendBatchEmail()"
So how do I call an objects method when its on a different thread?
And I'm making it multithreaded so I can easily pause the process, and because the program freezes when the send() function is working, this would resolve that.
View 17 Replies
Jul 17, 2011
I have one Private sub that runs in a loop. I want the sub to run multiple times at once. For example the program runs, you press start; you run the program again and press start, again and again... the same program doing the job at once. now i just want one program do to it alone. But i would like it to be user defined. exp. run program. type in a text box 10. press start. and it works as if 10 of them work open working on the same thing.
[Code]...
View 1 Replies
Jan 13, 2011
I am trying to implement a solution for updating form controls without using a delegate.
Imports System.ComponentModel
Imports System.Runtime.CompilerServices
Public Module MyInvoke
[code]....
I get a cross threading error as though i didnt even use this method:Cross-thread operation not valid: Control 'ComboBox1' accessed from a thread other than the thread it was created on.
View 3 Replies
Apr 17, 2010
How to I run multiple threads in VB.NET? Say I need 2 threads - one that prints 100 numbers in a loop and the second one that asks for the user's name and prints it inside a message box.
View 1 Replies
Nov 13, 2009
I have a dictionary object (let's call it _do) I am using to cache some values for use in a multi-threaded program. I have a single controlling parent thread, with a timer function _doTimer() which can kick off child threads with a new instance of class MyThreadObject in each. My parent thread has _do as a property and with each time _doTimer() gets called, it may or may not repopulate _do depending on cacheflag settings. I pass a reference to _do to each instance of MyThreadObject and those threads at some point read the values of _do but DO NOT write to it.
What I want is to ensure that the child threads do not try and read _do whilst the parent thread is writing to it. Same thing but very slightly different -> I also don't want the parent thread to write to _do whilst the child threads are reading from it. However there is no problem with 1 child thread reading the values of _do at the same time as another child thread is reading the values - so ideally I do not want each child thread to completely lock out read access, only locking out Write access.. The code is roughly like this:
[Code]....
View 3 Replies
Mar 5, 2009
I want to start a job in a new thread or using backgroundworker to do it but havent done that before and asking you wich way I should do it. My program has a datagridview with a list of files, one file per row. I want the user to be able to select a row and then press "Start download" to start a background job of the download. I want to get events back of the progress of the download.
I have a class clsDownload that handles everything and raises events back but how do I implement the backgroundworking?Should I use the System.ComponentModel.BackgroundWorker inside of the class or create some wrapper that handles this or use some other threading stuff?
Edit: I dont understand how to implement my download in the backgroundworker, any small example would be very nice. The example on msdn didnt get me far.I have a download class that has a StartDownload-function. Should I use the backgroundworker IN the class or in the caller? "feeling stupid"
View 5 Replies
Apr 28, 2012
what i currently have is the main form that then when a user presses a button it runs some functions that loops through some files and changes them and then copys them to another location the functions can take quite some time. what i want to is when the button is pressed it opens another form with a textbox on it and when it has finished 1 cycle of the loop is outputs a line to the textbox and tells the user weather or not it has been sucsessfull.
at the moment i have:
Dim t As Threading.Thread
t = New Threading.Thread(AddressOf Form3.Show)
t.Start()
[Code]....
View 1 Replies
Dec 7, 2011
I have only managed to use an STA to run a long running excel process with a background worker and 2 delegates.
What I want to do now is have the whole application running outside of the main thread to make sure the UI is always available, I then want to create new threads from the thread I have outside of the main to run the various processes. I will need to have some form of syncronisation in there for certain things to be done once a thread is completed and also I will need to change the button states on the main form to stop certain process being called whilst other processes are running.
This is my code so far, basically this loads in a csv file to a datatable adding manager employee ID and email address, filters it and displays the resultant data in a listview. There eventually will be some filter options as well. There are then 2 options for processing the data, it will produce individual bradford factor reports and email them to each manager or will produce a summary spreadsheet that is sent to HR.
Currently because there are around 8000 lines of data, it was the summary option that required the background worker as a long running process time out error was occuring whilst in the main.
What it does is write the data from the list view to an excel sheet and colour co-ordinates the summary rows according to the absense policy. It then copied bottom to top, the summary value the next blank column against all the lines for that individual and then uses this column to decide which sheet to move the row to, copying the row to the new sheet then deleting it from the master list and shifting the cells up.
This works well, but the process of loading the data in to the list view locks up the main thread where it currently runs. I also wanted to make this slightly more complicate as far as threading is concerned, as more of a learning curve than a practical application of the function.
Here is my code so far: [URL]
View 10 Replies
Jan 2, 2012
I am using the BackgroundWorker to do the heavy tasks so the UI thread doesn't get blocked. While the BackgroundWorker can send values to the UI thread using the progress-scheme, how can the BackgroundWorker get some values FROM the UI thread?
Either by asking it or simply by the UI thread sending some values to the BackgroundWorker?
Just accessing a variable of the UI thread like UIForm.x within the BackgroundWorker does not work, it does not seem to have access to the UI variables?
View 1 Replies
Feb 1, 2011
Is there a way in .NET (VB.NET or C#), when an exception happens, to dump the stacktrace of each thread? Basically I would like to reproduce what happens in Visual Studio's Debug->Threads window to see what each thread was doing when the exception happened
View 2 Replies
May 25, 2011
I have the following code running in a thread to enumerate the local machines in the active directory. This takes some time to complete (about 5-10 seconds) so if the user quits the application before the enum is complete the application takes 5-10 seconds to quit. I tried thread.abort but because it is waiting for For Each SubChildEntry In SubParentEntry.Children to complete it doesn't abort until this returns.
Dim childEntry As DirectoryEntry = Nothing
Dim ParentEntry As New DirectoryEntry
ParentEntry.Path = "WinNT:"
[code].....
View 2 Replies
Sep 6, 2011
I have form1 and form2. A button on Form1 calls a thread background process (below). That process processes the command and when its done should close form2. I'm opening form2 within the current thread but trying to close it in the background thread. This is because if i close it in the current thread it closes immediately. I included the 2 functions below and what I have tried in the inline comments. Form2 is a simple form, basically just an animated gif. It is to show the user that something is happening(like a status bar) then close when its complete. I tried running different priorities instead of different threads but due to the results threading seems to behave the best. I'd like to keep access to both forms during the process, the pc, and screen refreshes realtime.[code]
View 2 Replies
Jun 15, 2009
I'm trying to use a UDPClient object to listen for all connections on a specific port. Devices on my network let me know when there is new data available so I can begin processing the new data, but I need to loop within a thread in order to continually look for new data. This is understandably a resource hog, and it takes up approximately 50% of my CPU load while running.
[Code]...
View 1 Replies
Sep 25, 2009
I have a Window Forms application (using clickonce installation, running on a terminal server) that occasionaly ends up with a thread that appears to be running in a tight loop. The user doesn't know this happens as the app continues to run as expected. Also I have determined that I can kill the problem thread without any apparent affect on the app.
I can use Process Explorer to find the instance of an app with the problem and can isolate the thread with the problem but haven't found any way to look into the thread to find anything that would help me determine what is causing the problem. Does anyone know of a way to some additional information about a thread, like maybe strings, that would help me zero in on the issue?
View 2 Replies