Call A Method In A Thread?
Dec 29, 2009
I have a class that runs as a thread. While the thread is running, I want to call a method in that thread. I do this commonly where a thread calls a method in the GUI with a delegate. But I'm confused how to do this when the called thread is not the GUI and there are no parameters passed to the called method.
View 8 Replies
ADVERTISEMENT
Aug 27, 2011
I am trying to call a method that started on a background thread on the UI thread calling BeginInvoke and passing in a delegate as follows:
Dispatcher.BeginInvoke(Function() UpdateApplicationDataUI())
to call this method:
Private Sub UpdateApplicationDataUI()
...
End Sub
However, I get an error in the call to BeginInvoke (the UpdateApplicationDataUI portion of the delegate is stating "Expression does not produce a value").
Me.Dispatcher.BeginInvoke(Function() New Action(AddressOf UpdateApplicationDataUI))
View 1 Replies
Jun 8, 2009
I am trying to call a method which has two parameters using thread. How can I do this? If I pass parameter to my thread.start() method, it is giving error.
View 1 Replies
Dec 31, 2010
I'm reading data from a serial port, but the DataReceived event of SerialPort is handled on it's own thread. I want to handle this on the main thread, but simply declaring an event and raising it still results in it being processed on the SerialPort thread. I'm assuming I need to declare a delegate I can call, but I don't see how that would work.
For example, I want to call Sub HandleDataReceived() on the main thread from the DataReceived thread, having HandleDataReceived() run on the main thread. How would I do this?
View 1 Replies
Nov 12, 2009
Does calling the Dispose method on a Windows.Forms.Timer call it's Stop method? Or should I stop the timer before I dispose it?
View 5 Replies
Feb 16, 2010
I will try to explain what I need.Let's say that I have a class like this:
Public Class Example1 Public Sub ToBeCalled()
[Code]...
View 5 Replies
Jan 29, 2012
I have a Application that Crypts all Files in a Directory and the Subdirectories
Public Shared Sub CryptAllFiles(ByVal crypt As Object)
'check if this dir exists
Dim vDirInfo As New DirectoryInfo(vPath)
If Not vDirInfo.Exists Then Exit Sub
'get all files' sizes in current path
[Code]...
View 3 Replies
Mar 17, 2012
i want to which way is better when concentration is on processing speed. i want to call a method that compute some data that method is on another form in my windows form application then what you prefer is better way 1) to call that method in another form and use returned value or create similar method in form where it is required.i want to make it's processing fast.
View 3 Replies
Jun 10, 2011
So, I'm having troubles implementing a separate thread. This is because I have a simple class, and in it I start a new thread. So, as it is not any form, I haven't found any way to make it call the function in the UI Thread.
So, I cannot use the Invoke method. Is there any way to call a function from another thread?
View 2 Replies
Feb 21, 2010
Im trying to call a procedure to run into a thread..But this procedure requires two arguments. How can I pass these arguments in to the function when the thread call:
Dim myThread As New Threading.Thread(New Threading.ThreadStart(AddressOf PopulateTermList myThread.Start()
addressof PopulateTermList should only be called without parenthesis(the VB tells me this)
View 5 Replies
Oct 7, 2010
I've written the following code which works fine.I'm wondering if there is not a simpler way of writing it to achieve the same?
[Code]...
I've not found any other way than using a Timer to have the status updated and the other actions done, as as soon as I start the thread, I loose control and "GetList_Button_Click" does not wait or control the thread.
The goal of using the thread is to not freeze the application and also adding a button to cancel the search in the future.
View 3 Replies
Feb 16, 2010
Is it possible to reassign thread to a different method, once it has been instantiated. If not, are there alternatives?
View 2 Replies
Dec 11, 2011
Usually I use the synchronizationcontext to run methods on my GUI thread from a background thread. But now I need to do it the other way around and the synchronizationcontext class doesn't work on threads that don't have a GUI. What I basically need to do is, if there is anything going on on the thread I want to run my method on, I want to pause or interrupt it and run my method and then let it continue.
View 4 Replies
Feb 2, 2010
I want to add a parameter to my thread call here is the code. I want to call th.Start(True, sender.Text) and Count(ByVal isRunning As Boolean) will then become Private Sub Count(ByVal isRunning As Boolean, Byval strID As String), but I can't do that. So how can I make this thread accept 2 parameters?
Private Sub btnStart1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart1.Click
th = New System.Threading.Thread(AddressOf Count)
th.Name = "Button1"
th.Start(True)
[Code] .....
View 4 Replies
Oct 10, 2010
I have a few classes. One of the classes handles everything to do with updating controls (Such as adding items to a listview, etc.) and another is handling loops. I'm trying to add something to a richtextbox from another thread.[code]..
View 3 Replies
May 30, 2011
I have a 3 functions that should be called in order, that I want to do this in a thread say about 20 for each argument I pass. So for example
sub process_work(arg)
result1= function1( arg )
result2= function2(result1 )
result3= function3( result2 )
listview.items.add( result3 )
end sub
How do I call this sub and pass to thread on button click. Is it possible to spawn new thread it I pass argument to this sub and the current or last one is busy?
View 11 Replies
Jun 22, 2010
i got a background worker that has the following code in the do work.... one of the things i want to do is to add rows if theres none available ...but i got an error saying i need to do a safe call thread...i already read about it but im stuck i put control.invoke, but that gives me an error too saying Error 1 Reference to a non-shared member requires an object reference.
[Code]...
View 1 Replies
Nov 2, 2009
Let's say that I have a module that has a Queue in it. For other entities to Enqueue, they must go through a function:
[Code]....
If I have multiple threads running and they want to call InsertIntoQueue(), is this considered thread safe? I am under the impression that there is only one copy of the instructions in memory necessary to perform the InsertIntoQueue() function... which would lead me to think that this is thread safe. However, I wonder what happens when two threads attempt to run the function at the same time? Is this thread safe, and if not, how can I make it thread safe? (and What would be the performance implications regarding speed and memory usage)
View 6 Replies
Feb 8, 2010
I'm trying to change/execute the example [URL]...onContext.aspx I've posted my project below. I'm getting a cross-threading error and I thought the point of all of this was to avoid that. (yes I realize I could just delegate... I'm trying to do something more complicated but am using this as a test bed)
[Code]...
View 17 Replies
Jan 29, 2009
I've got a problem. I'm running a different thread. The thread's sub is looping, doing various things during the program, and eventually tries to close the form. I get an error, because the other thread can't access the "Me" object, I guess. It won't close the form. I don't want to use Application.Exit. Is there another way?
View 3 Replies
Jan 30, 2012
I am trying to make a thread-safe call to a button on another form and I cannot figure out how to do it.I have read all of the MSDN documentation on thread-safe calls .
View 10 Replies
Mar 4, 2012
I'm calling a class function in a thread function. I'm using invoke method to send a value to a progressbar in the main form and I don't know how to do that in an other class function called by the thread function.
My goal is to send a value to a progressbar to the main form from the thread function and even from the function called by the thread function.
My code:
' Invoke sub
Public Sub UpdPgEvent(ByVal value As Integer)
Me.pgFindEvent.Value = value
[Code]....
View 1 Replies
Nov 17, 2011
We have an ASP.NET application that queues some of its long-running operations (generating reports, for example) into the ThreadPool using System.Threading.ThreadPool.QueueUserWorkItem.
We run the ASP.Net application pool using a specific domain service account so that it can access remote resources, including files and databases. When the execution starts in the ThreadPool, the user identity of the thread is set to Network Service, which doesn't allow us to access the remote resources.The web application can be accessed by users in different countries simultaneously and the format of the data that we provide to each user is based on their culture settings (using the standard globalization settings in web.config). When the queued thread is started, it has also lost this information and reverts to the default culture for the operating system.
Now, we can probably get around most of these issues by capturing the current user identity and culture in a state object and passing that to the background worker, then impersonate the user and set the culture on the thread, but this seems like a very "unclean" way to resolve this issue.[code]...
View 2 Replies
Mar 23, 2009
my app just freezes, and stops answering, gui freezes. Im trying to appentext to a textbox via the delegate method. What am i doing wrong?
[Code]...
View 13 Replies
May 27, 2010
i got a background worker that has the following code in the do work.... one of the things i want to do is to add rows if theres none available ...but i got an error saying i need to do a safe call thread...i already read about it but im stuck i put control.invoke, but that gives me an error too saying Error1Reference to a non-shared member requires an object reference.what can i do to add rows safely?
vb.net
Private Sub BackgroundWorker2_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork
If DataGridView2.Rows.Item(num).Cells.Item(0).Value = "" Then
Control.Invoke(DataGridView2.Rows.Add(1))
View 6 Replies
Feb 4, 2012
I'm going to level with you -- although I heard someone say a long time ago "Never use it"! -- and it stuck with me, if I didn't have this in my form load code, my program wouldn't work.Because, to be completely honest, I could never get my head around the issue regarding the serial port and using delegates. (Haven't given up though).
Anyway, the software works absolutely fine with this statement BUT I get a several errors without it based on that "separate threads" thing (to put it in hillbilly terms). is it still "Never use it"? or am I not alone, and some of you have also used "check for illegal cross threads = false"
View 39 Replies
Feb 21, 2011
I am trying to add a subitem to a listview in a threadsafe manner.In a single threaded application it works like so:
[Code]...
However if run in another thread it causes a cross threading error.I have looked at examples of delegate subs that use Invoke, but all examples i have seen involve updating the text property of an object, and i cant get my head round how to apply the concept to actually add a subitem to a listview.
View 3 Replies
Nov 15, 2009
I have a method that is asynchronously called when System.Net.Sockets.NetworkStream.BeginRead completes.
skDelegate = New AsyncCallback(AddressOf skDataReceived)
skStream.BeginRead(skBuffer, 0, 100000, skDelegate, New Object)
In that callback method, I need to interact with the UI thread.
Sub skDataReceived(ByVal result As IAsyncResult)
CType(My.Application.OpenForms.Item("frmMain"), frmMain).refreshStats(d1, d2)
End Sub
This causes an exception after the method completes. (when End Sub is executed)
[Code]...
View 4 Replies
Aug 14, 2009
I have a task that needs to be executed many times in a thread, so as to keep my GUI responsive. Right now I'm using the ThreadPool to accomplish the tasks, and it works perfectly. I get all the data I expect back from the threads, life's good. When those tasks are finished, I then fire off another set of threads to accomplish another set of tasks, in the same fashion. The work method of these threads uses a call to RegistryKey.OpenRemoteBaseKey, which does exactly that, opens a remote registry key. The problem is: if the user running the application does not have permission to open the remote registry the call will throw an IOException, but I expect this behaviour because the user does not have permission to do it. However, the call itself can take FOREVER.
I wrote the application initially to use delegate methods and used the WaitHandle.WaitOne() method on AutoResetEvents in a state object I passed to each delegate. I tried the WaitOne method using a timeout, which worked fine until I realized that even though the WaitOne timed out, the thread was still running. This is a problem because (from what I understand) processes are only given a certain number of ThreadPool threads and, once used, they must be finished in order to be released back to the threadpool. In my work method, I also have a variable that can be signalled when the thread should be stopped, but that (obviously) only works on code that I've written.how can I cancel a thread that's stuck on a .NET method? Is there some sort of garbage collection method I can call if I give it a handle?
View 18 Replies
May 14, 2010
I am looking for a way to pass a class method into a new thread. On my form I have a few object that contain methods.
For example obj1.doWork.
Now I want to do
Example
Dim t as new Thread
t = new Thread(AddressOf obj1.doWork)
t.start()
However I get an error on this saying:
Error1Overload resolution failed because no accessible 'New' is most specific for these arguments:
'Public Sub New(start As System.Threading.ParameterizedThreadStart)': Not most specific.
'Public Sub New(start As System.Threading.ThreadStart)': Not most specific.
View 11 Replies