Threading.thread Addressof Passing Variables
Apr 16, 2012I am trying to pass some status from a IP call in a shared sub to a label on my form. This is the current code that i am using:
[Code]....
I am trying to pass some status from a IP call in a shared sub to a label on my form. This is the current code that i am using:
[Code]....
VBasic / VS2008 / .NET 3.5 / Meas Studio 8.5 I've searched and seen a number of convoluted ways of doing this but.... What I am trying to do should be simple and in my mind (and from previous experience) it should work. It doesn't At least not after 10 hours of tweaking, editing, researching....
Straightforward project, 3 components - MainModule, MainForm, CNCNoForm. I declare public var NCPgmNo in the module. I open the CNCNoForm from the MainForm. This form has 2 controls - Numeric Up/Down Box & Close Button. I enter a number in the Num box (read only property is set to false), then assign the value to the var. NCPgmNo in the value-changed event sub. I close the form, returning to the MainForm. The variable does not pass even though it is public and declared in the module. I tried removing it from the Numupdown event and assigned the var before 'me.close'. Still N/G.
If I put a breakpoint right after the line that assigns the var, it is correct. It just does not pass to the MainForm. I started with a textbox, then changed to a Meas. Studio Numeric control, finally Numeric up/down. Same results with all 3. I though the CNCNoForm was broken so I removed it from the project and rebuilt it with a new name (yes name references in the MainForm and MainModule are correct). One other thing. If I call the CNCNoForm repeatedly, it reads the previous value. I am ready to give up computers and take up farming or hiking.
[Code]....
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
[Code]...
I'm currently using the code:
Public
ReplaceThread As
System.Threading.Thread<br/>
[code].....
Assuming I have the following code that is iterating over controls in a panel setting various control information.Private Sub BindDataFields()
[Code]...
im trying to terminate a threading.thread using thread.abort the thread runs a download connection so is usually in the middle of socket.recieve or socket.send or socket.connect when aborting i just want to terminate the thread no matter what thread.abort raises an MDA excpetion. so i ticked it off in the debug exceptions menu. now it doesnt raise an exception, but the thread simply wont terminate. my program wont close unless i press top in the debugger.i cant pause downloads because i cant terminate the thread this code wasn't working?
Dim vT As Threading.Thread
For Each vT In clsDownloader.DownloadThreads
If Not vT Is Nothing Then
vT.Abort()
[code].....
as for the exception concerning threads being aborted from other threads being dangerous, how is it possible to send a message from a main thread to another thread to abort itself? as far as i know the only way to a abort one thread from another is to just kill it (because i dont know of ways for a thread to communicate with another).
I got this Error. below is my code.
GenerateTheList is function.Need help
Private Sub buttGenerate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttGenerate.Click
Dim thread1 As New Thread(New ThreadStart(GenerateTheList))
thread1.Start()
End Sub
I have code, shown below, that works all except for 1 thing: The variables being passed byRef get passed, but once modified in the else section of the "if me.invokerequired" code of RecordData, the variables are never updated in the calling function. To reiterate, the calling function does not receive the updated data that is in the variables custid and amt.When debugging, I see the data change in the else section of "if me.invokerequired", but once it returns from the callback the data is missing.[code]
View 15 RepliesI 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))
Question 1: What is the difference between "Background Worker" and "Worker Pool" as indicated within the MSDN samples provided.
Question 2: I noticed while using, AddressOf _Function_, variables cannot be passed; what would be an efficient solution to this?
Question 3: While using multithreading is it required to invoke before setting variables, or only form properties?
Question 4: While using System.Net.Sockets is it safe/efficient to use Application.DoEvents while waiting for new data; or would be using a Do While loop be fine without DoEvents since the action would be multithreaded? Note: there can be up to 2000-3000 sockets in use at a time.
So I am currently attempting to wrap my head around create multi-threaded programs and I am currently running into an issue when using a Shared variable across multiple threads.The program is structured as follows: Public Shared IsActive as Boolean
Main Thread = GUISets the Value of IsActive through a Button ControlTwo Worker ThreadsBoth threads are while loops that read the IsActive Boolean Ex:While IsActive = True Do Work End WhileHowever when I change the value of IsActive from the Main Thread it causes the worker threads to stop (ThreadState = 16).
I have been reading that I have to synchronize/lock shared resources and have tried SyncLock and Monitor methods without success (it is entirely possible I am not using the above correctly, so If someone could provide proper examples for the above situation using the mentioned methods please share them).
I have this little application that is using a System.Threading.Thread.Sleep, application runs great but Windows thinks the application is not responding even though it is running.
[Code]...
What is the difference between creating a thead using BackgroundWorker and creating a thread using System.Threading.Thread?
View 2 Repliesi got inside
WebBrowser1_DocumentCompleted sub
the code below
WebBrowser1.Document.GetElementById("form").InvokeMember("click")
Call ProcessNextLine()
when it clicks this button it should load another page(Like log in)
Call ProcessNextLine()
takes next line from txt file (It's url) + navigate
but I want it to wait let the page load before calling "Call ProcessNextLine()" I tried System.Threading.Thread.Sleep not working?
What is the difference in using: BackgroundWorker1 or System.Threading.Thread
View 3 RepliesI looked around the site and the questions I found relating to this subject were for C# (the application that I am maintaining is written in VB.NET), so I apologize if I overlooked one. Here is where I am calling my thread:
[Code]...
I have a problem with releasing locks on a thread. [Code] If Me.IsStarted Then 'checks if my service is started and ready of service requests 'code here to enqueue my job and objRxResult with the service so it can populate it with the result before Pulsing back 'the service has its own thread that it dequeues jobs off of and processes them on it own time 'during this key enqueue phase we block attempts to stop the service, thus the _objIsStarted lock [Code].
View 4 RepliesI am creating an IDE for a game script with similar functionality as the Visual Studio IDE (at least, some of it). The game script consist of code that looks visually a bit like C code. It uses braces to define the start and end of a 'class' and uses nested braces to define the start and end of an 'event' in a class.
What I want finally is to have two Comboboxes above the text editor, one that lists each Class and the other listing each Event. The comboboxes should also show the Class and Event that the caret is currently in, just like in Visual Studio.I have attached an example of such a script (you can open it with Notepad).However, here is a short example where you can also see how I "defined" classes and events:
class1
{
event1
{
[code]....
As you can see, the classes are the 'names' of each block of code, defined by matching braces { }. The events are the names of each nested block of code, also defined by matching braces { } but inside a class. There is only one level of nesting.As you can also see, the layout can follow the standard C-style layout, or a slightly different layout (using the opening brace on the same line as the class/event name), or even a completely chaotic mess. As long as the braces match correctly, the code is valid.So in short, the large blocks are classes, while the nested blocks are events.
What I want to do, is parse an entire script, and store all the Classes (and eventually, also all the Events, but let's forget about them for now). I want to store the Class name, start position (defined as the start index of the name), end position (defined as the index of the closing brace) and the full text (defined as the text between start and end position, so including the name).
vb.net
Public Class clsClass
Private _Name As String
[code]....
The code works basically by finding every first opening brace (the opening brace of each CLASS, not event), and then loops through the class (using a brace counter to keep track of the nested braces) until it found the last closing brace. It then stores the name, start, end and fulltext in a new clsClass and adds it to the list to return.
I've been looking at threading to make my webapplications more responsive. I've found out how to thread a sub that takes no variables and doesn't return anything, but I can't find out how to achieve this for a function that takes variables and returns something. here is an example
[Code]...
How can I make my apparently so that when I click a button, it executes a sub of my choice on a seperate thread? I need this to send an email and when I ran it normally it crashed my GUI.
View 1 RepliesI am using a background thread in my application. The problem is: this thread starts when a button is clicked and it works well. After finishing it's work i can see the result. But when i try to start again, it gives me an error. How to restart a thread?
[code]...
When i press ToolStripButton1 for the first time it works really well. But when i press it second time it shows me error that, the thread has already been started.How to resolve it? I think how to restart thread is my question.
I want to have My.Settings.Delay in seconds not milliseconds adding the 000 for the user. I tried My.Settings.Delay + 0 + 0 + 0. but can't sort how to do this.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim var As Integer
Dim startVal As Integer
[code]....
In frmMain:
Private Sub DBReadAccountInfo(ByVal strAccountID As String)
Dim tmpaccountInfo As New PublicFunctions.clsAccountInfo
tmpAccountInfo.strAccountID = strAccountID
Dim ReadAccountInfo_Thread As New Thread(AddressOf tmpAccountInfo.DBLookupAccount)
ReadAccountInfo_Thread.IsBackground = True
[code]....
In "sub UpdateAccount", frmMain.InvokeRequired is always false. There's a MenuStrip control I'd like to update the .Text on.
I cant get System.Threading.Thread.Sleep to work..[code]
View 2 RepliesI have created a class for Socket reads so I can create sockets on command. Due to performing a socket read, the program will freeze waiting for incoming data due to being on a single thread. So I created a separate thread for the reading of the sock and attempt to invoke an event to prevent multi-threading errors.
But I am getting an error when trying to Invoke: "Invoke or BeginInvoke cannot be called on a control until the window handle has been created."
How can I fix this or is there a better way to read a sock without freezing the thread?
Class for Sockets:
Option Explicit On
Option Strict On
Imports System.Text
[CODE]...
Calling form code example:
Private WithEvents Socks As clsSock
Private Sub Sock_Connected(ByVal state As String) Handles Socks.Connected
MsgBox("Connected - " & state)
[CODE]...
The coding that I have a problem with might make people think that I am creating some malware. So the project I am doing is associated with iTunes. iTunes allows people to have one library. There is another way, but it is very confusing to some people, and very unreliable. So my project is that I will allow people to have multiple iTunes libraries on one computer. So the problem is this. In order to have an option to choose your library, I gotta make sure that iTunes is not running.
So this is the script:
Private Sub CheckAndCloseiTunes()
retry:
'Custom class that includes the function to safely close iTunes
Dim Processes As Process() = Process.GetProcessesByName("iTunes")
[CODE]...
So when I use the Threading.Thread.Sleep(2000) code, the form becomes unresponsive.
I have a string in which for sure there is a date in the following format: YYYYMMDD. So, to identify 14 October 2009 I'll find 20091014.Having this string, how can I format into System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern?
View 4 RepliesI have my own little tutorial about passing variables, and if you'll look at the code below, you'll see how I am passing the variable from one sub to the secondsub. Here's my question, how can I pass a value back from the 2nd sub to the 1st? So if I want to sum intA plus intB, and want to return that value to the first sub, how do I do that? [code]
View 18 RepliesI have a program that I am writing that asks the user for information.The program takes that info and passes the strings to a module that has a set of case statements for comparison.The program was working just fine yesterday, and now it acts like there is no information being passed to the module for comparison.[code]
View 2 RepliesI have an ASP.NET 2003 web application. There is a .vb module file within that application. Is there anyway I can pass a session variable into this .vb module from a aspx.vb page?
View 2 Replies