In my program, I created a list of a class that contains 5 picture boxes, a button, a label, an identifier, and some other stuff. I've got roughly 65 of these in this list. I'd be stupid to hard code all that in. The identifier is a 2nd way of identifying which specific location I'm working on.
Anways, all this is created at compile time. Works perfectly fine.
I then manually start a background worker that pings a collection of components. Based off the success of those pings, the picture boxes are enabled or disabled. Basically a proactive way to see if a collection of devices over multiple locations are actually working.
It's the background worker that fails because of thread-safe calls.
Private Sub bgwStatus_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgwStatus.DoWork Dim status As Integer
I have a Windows Forms app that, unfortunately, must make calls to controls from a second thread. I've been using the thread-safe pattern described on the [URL].. Which has worked great in the past.
The specific problem I am having now: I have a WebBrowser control and I'm attempting to invoke the WebBrowser.Navigate() method using this Thread-Safe pattern and as a result I am getting StackOverflow exceptions. Here is the Thread-Safe Navigate method I've written.
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 .
I'm calling a c++ dll I made myself - and it appears to be very VERY not thread safe!
I'm referencing it like this
<System.Runtime.InteropServices.DllImport("D:ACS DesktopdcxdcxDebugStringLibrary.dll", EntryPoint:="firstIndexOfKeyword", CallingConvention:=Runtime.InteropServices.CallingConvention.Cdecl)> _ Public Shared Function firstIndexOfKeyword(ByVal s As String, ByVal substr As String(), ByVal substrLength As Integer, ByVal markers As Integer()) As Integer End Function
Is there a way to make this IMPORT create something more threadsafe?
I'm dropping into this function - from several threads - to add an OBJECT to a dictionary collection
Private Delegate Function ReaderRegisterDelegate(ByRef rrFSOb As FSObject) As FSObject Private Function ReaderRegister(ByRef rrFSOb As FSObject) As FSObject Try[code].....
It's getting Object reference not set to an instance of an object.The FILEID key being added is F1. F2, F3 and F4 are in the dictionary. Seems like F1 arrived and the object wasn't properly setup. Or thread-slice caused me to see a partially messed with dictionary list?How can I make that a thread safe operation? I thought dropping out to the UI thread was a safe place to mess with code like this? Oddly enough I can go to the immediate window and do this
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)
I have a TCP server app that starts 2 threads when the server is activated, I want the threads to add text to the textbox on the main form. Here's is what I have tried [code]I have added MsgBoxes at points so I know the Sub updatetext_ is being called, and the text is being passed, they are also showing that InvokeRequired is always FALSE. In any case the textbox txtMessages is not being updated.
On the MSDN docs for the generic List(Of T) class, it says this:
Quote:
Public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.but I'm trying to work out what exactly that means or why it matters. Does that mean that if I had this:
vb.net Public Shared MyList As New List(Of MyClass)
then I could enumerate through that list from several threads at once without there being a problem? I thought you could read from any object from multiple threads without a problem anyway... I thought it was only if there were potentially other threads modifying that object at the same time that there were problems. Particularly with a collection like a List because you cant modify a list while another thread is enumerating the items in the list as you get an exception thrown stating that the collection has changed. I think basically what I am asking is if the MSDN doc said that a public shared list wasnt thread safe then what difference would it make?
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.
I'm receiving tons of statistics data that I need to insert into the db.I would like to implement some kind of Queue or FIFO class that keeps all the dataand when it reaches to a specific count (buffer), it will send that data to the SQL through bulk insert. This should be thread-safe.
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.
Im creating a service for a mobile platform and I need to process user messages on a different thread than they were created on to leave the threadpool open.Anyway my App will be using a MySQL database and when it gets a message it will add the message to Another thread pool. But in the sub that procceses the messages I will need to perform query's on the database. So i know i can use a global variable and it will be visible to all threads but is making database operations safe while using a thread pool with a global mysqlconnection?
I currently have a form with a listview. On another form, I would like get all the items from that listview. This I can achieve but I always get the "Cross-Thread operation not allowed exception" message. I've tried the following code to avail.
I am using WCF to make a chat application - I dont think the fact I'm using WCF is relevant for this particular question but just thought I would mention it in case there is something special about the way WCF does threading that I dont know about.So I have my WCF service that runs on a server and a WPF app that acts as the WCF client - each time a new client signs in or out it updates the server WCF service to let it know that it has changed status. The server then updates a list to either add or remove the user, so this list basically represents who is online at any one time. The list is declared in the core server class like so:
vb.net Private Shared List(Of ChatUser)
So, I have a method in my server side that is called whenever a user needs to be added to this list and originally I thought I could have some issues because while the server might be looping through this list to find out who is online, another user might have signed out and the list would therefore be modified while the server was looping through it which would cause an exception. So I added the following to the start of the method that removes a user from the list:
vb.net SyncLock New Object
and I havent had any problems... but I'm still not totally convinced that this will completely solve the issue. So would creating a Property give me a bit of extra safety? Assuming I always used the property to access the list in my code. Like this:
vb.net Private Shared Property CurrentClientList() As List(Of ChatUser) Get SyncLock New Object
[code].....
Also, am I actually using SyncLock correctly? I mean should I be referring to a shared object that all of the threads can access rather than just doing New Object each time or does it not make a difference?
I have a small program that checks webpages for certain strings. I am using VB express 2010 .net version 4.I have the list of URLs in a listview, and loop through all the urls, perform a webrequest, check if the source contains certain strings and then add a subitem to the current listview with text to indicate the result I am attempting to speed the application up using a parallel.for loop, but this causes a cross threading exception.This is the code for single threaded:
For i As Integer = 0 to lvUrls.Items.Count - 1 Dim lv As ListViewItem = lvUrls.Items(i) lv.UseItemStyleForSubItems = False
I am trying to access a dynamically generated Control from a separate thread. But I am always getting a "Stack Overflow Exception" with my code. I am using following code:
I Have a Function on my frmMain Class wich will update my control to something else after an invoke. When i type "?Label1.Text" on the Immediate Window, the text property IS updated, but when i go check the Form, nothing happened. The code is just like this
so i have a Method that is going to made Thread Safe. can i have something like this in the Method:
Public Class Q Private Shared ASD As New MyException("") Public Sub W Throw ASD if multiple threads attempt to throw the Shared exception ASD, will there be an error in the catching part? The alternative of course is to: Throw New ASD but i'm just checking to see if the first way is thread safe
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))
If I spawn a thread with ThreadPool.QueueUserWorkItem and that thread does not reference the object that is not thread safe, would it compromise that non-thread safe object? By not thread safe object, I mean a third party interface to a programmable logic controller that has no ability to open simultaneous connections or concurrency support.I suppose I just wanted to be sure that by queuing threads in the same class as my reference to that object, I wouldn't somehow be compromising its thread safeness in a way I didn't realize.
I am currently creating an application which monitors any errors that occur in the other applications I have developed.
One thing that I want to try and do is add a sort of discussion thread into the form, so this allows for each member of IT to add comments/notes about the error that occurred.
Normally I would just use a DataGridView or a ListView, but I would like to have the capability for the comments/notes to be multi-lined so that the user can see what has been written without having to scroll sideways.
I am currently creating an application which monitors any errors that occur in the other applications I have developed.
One thing that I want to try and do is add a sort of discussion thread into the form, so this allows for each member of IT to add comments/notes about the error that occurred.
Normally I would just use a DataGridView or a ListView, but I would like to have the capability for the comments/notes to be multi-lined so that the user can see what has been written without having to scroll sideways.
I am currently creating an application which monitors any errors that occur in the other applications I have developed.One thing that I want to try and do is add a sort of discussion thread into the form, so this allows for each member of IT to add comments/notes about the error that occurred.Normally I would just use a DataGridView or a ListView, but I would like to have the capability for the comments/notes to be multi-lined so that the user can see what has been written without having to scroll sideways.
The problem is as follows: If Windows starts up in Safe Mode, no applications I make with VS 2010 will run. Even if I try to launch them, doubleclicking, running, almost everything I tried, the problem is that the application just doesn't show up. There is no window there, and I don't know (haven't checked) if a process related to the application is running.
I need to create an excel file from scratch in VB.NET given a DataTable from asp.net. I can do this for a specific file, but I don't know how to do it for a general database. That is, where I use the "CREATE TABLE ..." I don't know how to tell it what types to use for the data in the table.
The DataTable is derived from a FoxPro database. (I don't know if that matters.)
Is Array.Contains thread safe in the following context.A static array is declared and initialized with 4 elements in a function.Static validRotations() As Integer = {0, 90, 180, 270}It is then only accessed using validRotations.Contains(rotation) in the same function.