Is there any issues with this? If I'm kicking off half a dozen threads over and over? ie: I'm not using a system where the parameters will get mixed up/corrupted?
I've looked around, and if this is OK/safe to use, this seems the easiest way to get values/params into a thread.
I have a program which has a rather complicated component within it. This component has a number of features that all run at once and will cause lag with the main application which isn't acceptable.
To resolve this issue I'd like to run these processes on the component in another thread. I've created a simple test version to work out how I'm going to do this, however I've run into a few problems.[code]...
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)
I have written a program that performs multiple httpwebrequests. It reports in to me by writing to the console. In the past, i have used a backgroundworker for this task, but the code became ugly and bulky. Now, i use threading.thread to start the background process. However, i can't seem to find an explanation on updating the UI from the worker thread.
I've read a lot on delegates, invoke and lambda's, and i just got more confused.
Let's say, in my current program i have this line to be displayed in a textbox on my main form:
I'm looking to pass two or more parameters to a thread in VB 2008.
The following method (modified) works fine without parameters, and my status bar gets updated very cool-y. But I can't seem to make it work with one, two or more parameters.
This is the pseudo code of what I'm thinking should happen when the button is pressed:
Private Sub Btn_Click() Dim evaluator As New Thread(AddressOf Me.testthread(goodList, 1)) evaluator.Start()
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?
I am making scraper that uses url list. But I have no idea how to pass that wanted url from that list to thread that does scraping.
Public Sub init2_check() Dim t(source1.Items.Count()) As Thread For x = 0 To UBound(t) - 1 t(x) = New Thread(AddressOf ScraperDoWork) t(x).IsBackground = True t(x).Start(x) thread.Sleep(100) Next Me.Invoke(New button_Delegate(AddressOf enable2_button), btn_StartScrape) End Sub
DoObj(byval this as string, byval two as string, byval three as string) I'm trying to pass multiple parameters through a thread to this sub. I have tried this:
What is the best way to pass objects between threads? I would like to create a new thread that creates a new object : Dim myobject as newobject = new newoject Then in my main thread, I would like to use myobject. Ideally I would like to just assign to a global variable but I don't think that is possible. I think I may have to use some form of delegate function (but I think the child thread would need to complete to use a callback). The new thread will not actually end before I need the object reference in the main thread. How should I go about this?
1)Send a request to an external hardware by SerialPort1.write.
2)Receive this information in SerialPort1_DataReceived.
3)Set this information (integer from 0 to 31) on UserInterface (like cell phone signal level....)
How to pass level information to this graphical subroutine without receive cross - thread error?
======================== Serial request ======================== Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer_Livello_Segnale.Tick SerialPort1.Write("AT+CSQ" & vbCrLf)
I might be alone in this; but I was always under the impression that in .NET when you called a function you had to pass in values in the same order as the method.[code]I've ever seen just calls the method with the params in the correct order - is the named convention an old left-over from VB? If I were to use the := syntax in all my method calls, would people laugh during my next code review?
I have a old vb6 application I maintain,that has the settings in a separate xml file.
But now I have to move those "inside" (to remove the xml, don't ask why :) ).
What would be best place/"paradigm" for such
settings to be handled in vb6 Like database connections, general parameters. Also to be easy to change it, u know what I mean. I just searched on the web but until now could not find it. Of course it is easy to hard code the ones for the moment
In one application, I need use 4 simultaneous threads.When the threads finished, I need to update the text of a TextBox.So, I create 4 Textbox, and I wanna the threads change the text to FINISHED.Each thread change one distinct TB.I use this "example"
Dim Terminados As Integer = 0 Private Sub frmEnviarMensagem_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Enabled = True Timer1.Start()
[code]....
The problem is, I have an error in the red lines.The error is: INVALIDOPERATIONEXCEPTION "Cross-Thread operation not valid: Control tbPlaca1 Accessed from a thread other than the thread it was created on."I don't use cross threading. Each TB only was accessed for the correspondent thread, and for the "main program".
I'm having an issue with an application suite I'm developing. The bulk of the work is done in a backend dll that relies heavily on delegate subs in the different apps.
The problem I'm having is, I have a lot of these delegates typed to require a parameter. (eg, Public Delegate Sub DelTypeA(ByRef param As Object)). The individual methods will have a DelTypeA as one of their params, and I will pass it AddressOf functionA that has that signature.
This works fine for strong typing as long as the signature is something incorrect (2 params, a byval instead of a byref). But if functionA has NO params, the delegate is still created!
This works fine if I genuinely don't need to use a param, eg if the sub is simpler and I would have ignored the param anyway. But I want the strong typing to work here.
EDIT: I should add that invoking the delegate also works fine for simpler subs; the param is just not passed because it had nowhere to go. But I want to force all the subs to match the signature and do their own ignoring of the param
I was going over the Screen Saver Tutorial for VB Express 2005 and i Noticed How the Screen Saver app excepts params at startup... and depending on the startup param it will display the screen saver or the options form... lets say that i want to start up a screen saver from my program, how would i send it to the screen saver to display the options form the param is "/p" or something.
"Cross-thread operation not valid: Control 'Panel1' accessed from a thread other than the thread it was created on." The reason I am getting this error is because I am opening up a new form and then calling these three things:
Panel1.Show() Label1.Show() Label2.Show()
why I get this error message because it doesn't occur normally if I open Form2 after closing Form1, it only occurs when I open Form2 after closing Form4.
When my client try to connect to server I'm getting this error : Cross-thread operation not valid: Control 'l_users' accessed from a thread other than the thread it was created on.
Private Sub _socketManager_onConnectionAccept(ByVal SocketID As String) Handles _socketManager.onConnectionAccept l_Users.Items.Add(SocketID) End Sub
Would anyone be able to help me here please. I'm fairly new to VB.net and threading so im just trying to figure out what is happening.When I debug this I am getting the error thread operation not valid: Control 'ProgressBar1' accessed from a thread other than the thread it was created on.
I'm a little lost as to why the error is occuring or how to fix it. I've had to put the progress bar in a separate thread otherwise the GUI crashes
My understanding is that thread.join will suspend the execution of code on the calling thread until the spawned thread finishes or is aborted...
With that in mind, I tried this:
For i = 1 to 50 threads = New Thread(AddressOf test) threads.IsBackground = True threads.SetApartmentState(ApartmentState.STA)
[CODE]...
However, the rest of the code runs when the loop finishes, not waiting for all the spawned threads to finish. Since the rest of the code needs the threads to finish (otherwise the rest will error).
I have written an application that loads a form - frmCad as well as AutoCad. It does this via a class which detects when AutoCad quits.
Friend Class CadApp Private WithEvents AppObject As AcadApplication... Private Sub AppObject_BeginQuit(ByRef Cancel As Boolean) Handles AppObject.BeginQuit RaiseEvent Quit() End SubEnd Class
My main class loads frmCad as well as CadApp.
Public Class Cad Private WithEvents frmCad As CadForm Private WithEvents app As CadApp... Public Sub ShowForm() If frmCad Is Nothing Then frmCad = New CadForm frmCad.Visible = True End Sub... Private Sub app_Quit() Handles app.Quit frmCad.Dispose() frmCad = Nothing .... End Sub
When I debug the program, it stops at frmCad.Dispose()The program continues to execute, but all the code after it fails to work.Looking more carefully I get an error message which contains:-Cross-thread operation not valid: Control 'Autocad' accessed from a thread other than the thread it was created on.
My error:Cross-thread operation not valid: Control 'label2' accessed from a thread other than the thread it was created on. I want to be able to give my Public RunBot() sub access to edit Labels, buttons, etc without an error.
My problem is Cross-thread operation not valid: Control 'statusHO' accessed from a thread other than the thread it was created on.
System.InvalidOperationException was unhandled Message="Cross-thread operation not valid: Control 'statusHO' accessed from a thread other than the thread it was created on." Source="System.Windows.Forms" StackTrace:
[Code]...
i used it and it works fine then. but as it is mentioned its not a good practice to use it. So what should i do? is it ok if i use this as i am not able to use correct practice. Mine application is not for enterprise purpose. its just my class project, and it works fine even if i put application working in background. System works ok. I dont know how to correct this error.As i dont have that much knowlege of threads.
So please guide me how to fix this in correct way otherwise i am force to go for bad programming practice Please refer to Windows Mobile Developer Center > Smart Device Development Forums > Windows Mobile Development > Appendtext not working for all my code details
My first post as an absolute last resort. In 8 years of programming, I have never posted to a programming forum and have always been able to wiggle my way out of any diffficult project...Until this project.Every step of this project is new for me (Windows service, ini file, IIS, FTP, cmd line params, comparing file specs programmatically, using a timer, and even VB.NET is still confusing to me after several years in VB6 ). Dreading posting b/c I have so many questions. I have finished the internet, been to the end and back. Found endless suggestions of code and links and forums and only gotten more lost in the process.
I am trying to create a VB.NET app, that most likely will need to be a service, for our external clients' PCs. These PCs are not connected to our network. This app will be invisible to the user and will need to perform several tasks including:
Finding the documentation on windows API's for use with visual basic? I used to use API guide until they stopped updating it in 2002. All I need is the api name as well as the list of parameters in order to use the API's functions.
I am currently facing an heavy struggle with architecturing my VB.Net app.To simplify, i'm using entries from XAML comboboxs, which all trigger OnChange the same routine which manages which Function(s) to use depending on which combobox triggered.The problem i'm facing is for example i have Function(ByVal A As String, ByVal B As Integer, ByVal C as Double, etc...), and it works if the routine calls explicitly for this function's result. But then if another combobox makes for example the variable B to change, then i have to add another "If sender= Then" check for this combobox and recall expicitly the function above (since B is one of its parameters)..In the end, my routine is loooooong like 24 checks with at least 4x duplicates of same functions..is there a simple way to make a Function autoexecute when one of its parameters change without having to be called explicitly by another routine ? (Like Excel formulas do when one of its references change)
I'm trying to convert the C# code from this webpage to VB.Everything seems to have converted pretty much fine using an online converter tool, but then I reach the following line:
The fadeOutAnimation.Completed event produces an event with the signature (sender, args), and d, hostGrid and grid are variables local to the function containing this mysterious event handler assignment.
I think I can see that the instruction on this C# line is telling the code to execute the OnFadeOutAnimationCompleted function, using d, hostgrid and grid as parameters, when fadeoutAnimation.Completed occurs, but I have no idea what to even search for in order to replicate this behaviour in VB.net.