I have a list of(myclass)each item of this list need to be elaborated before being inserted in the list.Is it safe to use parrallel processes to fill shared list where each process has to fill a predefine range of the list? Or is it necessary to freeze the list when one process is filling it? in other words: can many process fill the same list in the same time without problems
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 have a list of strings that I need to pass to a process in a different class. What I want to know which of the two ideas would be a better approach to use in terms of speed,efficiency and parallel processing. The list contains +- 10000 strings and I want to limit the threads appropriately to have only about 5threads running at one time:
For i as integer = 0 to searchPages.Count - 1 Parallel.For(0,10,Sub(x) ps.processPage(searchPages.Item(i))
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 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 am working on an application using VB6.0, in which mails are to be automatically sent through an SMTP server.The mails which are sent through the server are going into the recipient's JUNK-FOLDER.One way could be adding the sender's domain/ID to Client's Outlook Safe Senders List manually.But instead of setting it manually, I want to add a domain/ID to the Safe Sender's List through my application itself.
I have a service that scans network folders using a parallel.for method. However recently I am finding if I stop the service then while windows says the service is stopped the process is still running in task manager. However it is at 0 cpu and the memory does not change. If I try and end the task (even a force in command prompt) it just says access denied and i have to reboot the server. What would be the best way to make sure everything terminates? I thought of adding a global Boolean that in the stop procedure it turns true and part of my parallel code will check for that and call s.stop.
I am loading a series of JPG images into an image list then using that to fill a list view. My program is using ALOT of memory by doing this. What would be the easiest way to add the images but take up less memory/time?
I've been obsessed with this since I explored it this morning.The post by John Wein shown here fostered a renewed thought about something I've wanted to do for a long time: Generate a "safe" list of folders/subfolders to search in. Whether we're trying to copy or just look through them to show them in a list or whatever else, invariably we're faced with the exception of "Cannot access", usually due to System Volume being attempted to be accessed.John came up with a brilliant strategy in that it's effective, fast, and done with such little code! My hat's off to you John!Now to the purpose of this post. I've taken his code and modified it (only to be run in debug mode so you can see exceptions) and I'm wondering if anyone would care to set up a little test project and run it also - so we can see if in fact we may now have an effective means of generating a list of safe folders/subfolders as preface for whatever other file operations happen next?
Copy and paste the following and let me know the results? Change the drive/folder as you like and let me know if it runs into an exception?
I am trying to move through a list "TodaysCard" and print the TimeOfDay.ToString into the first column of every row and to only create the amount of rows that are needed. But am a bit of a novice when it comes to this and can only get it to display the TimeOfDay.ToString value for the first item in the list over and over again. Just wondering how I can get it to iterate through each item properly.
My problem is that i am trying to use a list box to display all the data from one column in one table of my database. and so, i dont know how to do that although someone hinted at using an array, i'm just not entirely sure how also when the list of data is displayed i aim to have a 'select' button that will take the user to the record of the selected item from the box.
I have a WinForms applciation, I wrote a function that returns a list of all the controls on the form. The function returns a list of control objects.My target is to fill up a combo box with a list of the control names so that once clicked I set focus to it.So what is the correct code for converting a List(Of Control) to an array of string.
list the steps to fill a combobox using a bindingsource. I dragged a bindingsource onto a form, created a datatable and datatableadapter(correct term?), added a query. I tried but I am missing something, my combobox displays System.Data.
I have 2 linked DB tables, Artists and Albums using ArtistID as the primary/foreign key.When I want to add a new Album, I have a new form open and I can fill a combobox with the list of Artists to choose from and edit all the details then save to the database.
However, when I want to edit the Album info, I can't seem to get the Artist associated with the Album, as well as all the rest of the Artists from that table, (in case I need to change the Artist associated with the Album).The information required comes from 2 linked tables, so that's where I'm getting lost.An example of this is when a person edits their profile on a webpage, for instance, a list of countries is usually listed in a combobox and the one selected is the country they selected when filling out the form previously, however, they still have the option to change it.
I have read many posts on this topic; among them and most recently .NET - Convert Generic Collection to Data Table. Unfortunately, all to no avail.
I have a generic collection of structures :
Private Structure MyStruct Dim sState as String Dim lValue as Long Dim iLayer as Integer End Structure
Dim LOStates As New List(Of MyStruct) I need to fill a DataTable with this list of structures but have no idea how to go about doing this. I am using vb.net in Visual Studio 2008.
I'm using visual studio 2010 and i made some time ago a taskmanager just with some functions useful for me, so i would keep it in my new PC with Windows 7 64 bit, most of it work good because i have compiled it setting "AnyCpu" in the Project property and all work good with 64 bit process, but when i try to list the modules of a 32 bit process it doesn't work, same thing if i set the compiler to "x86" instead of "AnyCpu" in this case it work for 32 bit process but it doesn't work for 64 bit process, i'm using the class process of the framework, but i read that calling The Psapi there is the same problem, so, is there a way to make one version that work for both 32 and 64 Os or is it impossible to list modules of all process in a 64 Os?
How would I get a list of the DLLs that a process is using? For example, if a process used "SomeDLL.DLL", would it be possible to find that out using a VB program?
I am basically recreating task manager and process explorer to my needs. I am getting the processes as needed for now into the datagridview by using a timer. However, I can't seem to figure out how to "remove" any copies as it constantly re-adds the processes on each timer interval.I basically want to "refresh" the processes in the datagridview, and "update" any information within the rows.[code]
I am trying to block a list of processes from Txt file/ Listbox System.Diagnostic.Process using Timer. Here's the timer codes
[Code]...
I can block processes from the list using SelectedItem, but it doesn't block all the process in the list.Using while loop causes a deadlock error here. I'm now using aBlock.ReadLine to read from txt file and block the available process. However it is only able to block the first process. Need some guidance to get this code to block all the processes in the list.
I am writing a program for a Project in school. And so far i have gotten remote execution of commands. And now i want to be able to pull The process list on one machine and send it remotly to the other. Getting the process list on the machine is no problem, but i for the life of me have no idea how to send it to the remote computer?
I am trying to find out if an instance of an application (not vb.net) is already running - because I will want to start it but I don't want to start it if it is already running. I have found a solution to check if a process is running:
Dim proc As Integer = Process.GetProcessesByName(ProcessName).GetUpperBound(0) + 1
and return True if >=1 (or just the process number). My problem is, this is a third-party application, and its process name is not just a name but it contains a version number (which I may not know at run time), and it also seems to add a *32 (so probably a *64 if it is installed in x64 ?).
I need to get a list of running processes, by name, and test if "processname" is a substring of the name. But I haven't been successful in getting a list of names, only process id's.