VS 2010 - Sequential For Each Being Executed Faster Than Parallel
Feb 6, 2011
Suppose you have an array with 10.000.000 elements filled with values between 1 and 10, and you need to count how many fives it contains, something like:
Dim RandList As New List(Of Integer)
Dim r As New Random
Dim Counter As Integer = 0
For i As Integer = 1 To 10000000
RandList.Add(r.Next(1, 10))
[Code] .....
Here I got 2 problems, both versions are returning different values at each call with the same array, and the sequential ForEach is being executed much more faster than the parallel.
I am trying to copy the values to another sheet but not in any sequence eg.A1,B2,C4,D7 ........and so on. I am trying this slick way of doing it by the code below ( found on the web) without success so far but I got a feeling I am close to the solution. I am new to any kind of Programming. This is my first attempt. (so a chuckle or two is ok after seeing my "difficult" problem)
(This is an excel VBA Prblem) Sub justdoit() Dim s As Variant
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.
Is there an easy way to read in a comma deliminated file in VB 2010. In VB 6.0 you could read the file in directly to variables. It appears this has been removed in 2010.
does anyone know how to solve this kind of issue?if i add code to an existing code in my control/function/subroutine it will not executed and also if i delete some existing code in my program the code is still executed even though i delete it..
I'm new to VB and my book doesn't explain sequential searches very well. I need help with the application I'm creating for school. My application has to allow the user to enter a number and then it will verify if the number is valid by searching through the list of arrays I provided.The question:Create an application that allows the user to enter a charge account number. The application should determine whether the number is valid by comparing it to the numbers in the following list: (see code)The list of numbers should be stored in an array. A sequential search should be used to locate the number entered by the user. If the user enters a number that is in the array, the program should display a message indicating the number is valid. If the user enters a number that is not in the array , the program should display a message indicating the number is invalid.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim Account(0 To 17) As Integer
I'm working on a new version of something I had created years ago in VB6. What I was doing then is populating a combobox with lines from a sequential file ("title","URL") like this: Open "data.dat" For Input As #1 Do While Not (EOF(1)) Input #1, NameInput, URLInput cmbEntry.AddItem NameInput Loop
And then checking against it on a button click to load the URL associated with the selected name: Open "data.dat" For Input As #2 Do While (cmbEntry.Text <> NameInput) And (Not (EOF(2))) Input #2, NameInput, URLInput Loop [Code] .....
What I'm trying to do in Visual Basic 2010 is the same process, though I'll be including a third field ("category","title","URL") to determine which one of four different comboboxes I add the entry to. I know I need to use streamreader, but I'm not finding much in the way of documentation or examples on how to do what I'm trying to do, which is: - Populate one of four comboboxes with the second value in each line of an external text file, based on the first value in that line - Set a string to the third value in a line of an external text file, based on the second value of that line How to read these values from the file.
OK, I've been searching for hours trying to find the best way to fill a listview from a comma delimited file but have come up empty handed so far. Currently I am using code I found on the NET, which works, but it is EXTREMELY slow. As a test, I created a file with 5,000 rows, and 10 columns. The column layout is as follows:123,NAME,NAME,NAME,NAME,0.00,NAME,YEAR,NAME,1
Dim ofd As New StreamReader(".dataCardData.bct") Try Using reader As New Microsoft.VisualBasic.FileIO.TextFieldParser(".dataCardData.bct") reader.TextFieldType = FileIO.FieldType.Delimited reader.SetDelimiters(",")
[Code]...
The code I am currently using appears to be loading the file and somewhat simultaneously filling the listview at the same time. I feel that I should load the entire file into an array or arraylist and the send the array or arraylist to the listview. However, if this is the best way to do it, I have not been able to find any examples of how to do this.
I have an array of approximately 1000 classes. All of these classes must have one of their properties changed to the same value. I need this to be as optimized and fast as possible.
Would LINQ be faster than a for-loop? Any other ideas for faster execution?
what I have to do is read the 5 names inside the Sequential Access File and store them in an array. I'v encountered a problems in storing it in an array. Here's the code
Dim infile As IO.StreamReader Dim names(4) As String Dim filename As String = "names.txt"
[Code]....
Theres an error in the code saying that a string cannot be converted into a one dimensional array.
I am working on a small program to teach myself how to use timers, and I would like to know if there is a way to make the timer control faster.I set the Interval property to 1 and it is to slow for what I am trying to do.(All I am trying to do is loop a button left to right, right to leftand so on in a Panel)
I am trying to make an application that can do effects to images but the problem is when I use large photos its takes a very very long time. I am reading it per pixel with bitmap's GetPixel and SetPixel methods. Is there anyway to make this process faster without using C# or C++?
I've been trying to this application in Visual Studio 2010 to only write to the parallel port, so supposedly it would be a very easy task, and by all the tutorials in the internet i've seen before it really is! Although it throws me always the same error which is too generic and don't give enough information for me to solve it. I'm doing this using the "Inpout32.dll" library to make the communication between VB.NET and the port..
I've been trying to follow the examples I've found online and, well, I can't really get my head around what I've done wrong.So, I have a simple piece of code to search for a machine in AD, as so. [code]
I've been trying to get this method to run parallel so it can take full advantage of all processors, and it seems like the data is running over itself. I didn't originally write it, so I'm having a hard time figuring out where it's running over itself when it runs parallel. It gets good data when it runs in a regular For loop.
Parallel.For(1, endm, Sub(m) 'Debug.Print("Top of loop: " & Now) For p = 1 To rowend
I want to expand it a little bit and add a second timer that runs parallel to the first timer, but is not affected in any way shape or form by the first timer.
I want the timers to run like this:
Time Timer1 Timer2 0 X X 1 X 2 X 3 X 4 X 5 X X 6 X 7 X 8 X 9 X 10 X X
Ive tried nesting the second loop in the first loop but the second loop takes 3 seconds to complete, so I found that it froze the first loop till the second loop finishes. I was reading about system threading (System.Timers.Timer) and it seems like that is the route I want to go.
I wrote this quick as an example:
This assumes that I added a windows timer control as timer1
vb
Option Strict On Imports System Imports System.Timers
Can someone tell me if the functionallity to control a parallel port in MS VB 2010 Expess exists? I was expecting to have to add a reference such as the microsoft comm control 6.0. However this reference does not appear in the list. Everything I search for references .net 2005/2008.
Does anyone have experience writing data to the parallel port (printer port) in Windows 7 64-bit. I have been trying inpout32.dll, inpoutx64.dll and following all the info on http://www.highrez.co.uk/ and www.logix4u.net but can't get anything to work. I have an on-board parallel port at &H378 - not an add-on card - and have tried various modes in the BIOS (standard, ECP etc). I have a background in electronics so I am confident my testing methods are sound; I just cannot get a data bit to change state under program control. I need to send data to an 8-bit port on some 20th Century electronics so serial/USB interfaces are not really an option. There must be a way to control those 8 data bits in Windows 7, mustn't there?
I have a VB.NET 2010 app that uses a backgroundworker to process MS Word docs. All of the code does what it is supposed to do, except when my code calls ReportProgress(). The UI cannot process the ProgressChanged event fast enough before the values in the class that are passed are changed. I know this because I inserted a System.Threading.Thread.Sleep(100) line after each ReportProgress() call which allows time for the UI to make the updates properly. I guess I am looking for a better solution thanThread.Sleep(100) since this adds to the amount of time it takes to process all of the files. Here are some snippets of code that I am using:
I need to perform a huge amount of registry read operations, and I'm trying to figure out a way to make each read operation faster than using My.Computer.Registry.
If I used APIs directly to do it, it should be faster, right?
I need to remove an instance in a class for which I also created a dictionary with a string key type. Like this...:
vb 'Declare dictionary Public PersonsList As New Dictionary(Of String, Person) 'At the bottom of frmMain.vb
[code]....
As you see, I end having 120 instances of the class Person, each assigned with a string key consisting in "student1" to "student120".
At other parts of the program I repeatedly refer to PersonsList("student" & n) to set values at those class entries, mainly with a For n ... Next block.
Now... I need a routine to remove one of those instances for good, including its entry at the dictionary, so my first bet is this...:
vb Public Sub ExpellStudent(ByVal student_index As Integer) PersonsList.Remove("student" & selected_student_index) students_count -= 1 End Sub
I assume this is good enough to remove the KVP at the dictionary AND the class instance proper... right?Well, even if that is ok, I foresee one problem... Let's say I removed "student46". Next time I run a For n = 1 to students_count I would bet that I'll receive an exception due to having a gap at "student46" KVP... and that without saying that students_count will be 119, so it will never reach "student120".In short, I need a way to reassign the KVP of the now 119 Person entries, so they're consecutive again (I don't care about them changing their string key values), so I still could use my For n = 1 to students_count ... Next blocks without problems... but I cannot figure out how.
My teacher as asked me to allow a user to input three pieces of information about a DVD (the ID, the title and the running time) and for the program to add that data to a sequential file. My textbook fails to explain it and I am at a loss as to where my book from last semester is located at the moment.
1. What is a sequential file?
2. How do I display information from it into a messge box?
First... does the array subscript have to be sequential? (0,1,2,3,4) Or could I pull the system date and use that? i.e. dim Beer() could have Beer(33939) for today, and then not record anything for three weeks and the next entry would be Beer(33960), etc.Along the same lines, and pointless if the answer above is yes...I'm writing a prog to handle inventory for a bar. The bar has 230 different beers at the moment. Could I create a 2-dimensional array using a product number, date for the subscript?
i.e. - for received data... recBeer(a,b)recBeer(229,33939) = 48(Meaning 48 bottles of beer #229 arrived on date 33939)SO... a is the product, b is the date. Any searches for (229,*) would provide me with the complete history of that product being received. any searches for (*,33939) would tell me all of what was received on that date.Will that work?(And yes, I'm stuck with a flat file to make this work. Much rather have a db involved.)
i am coding an application where I want to populate an array with the contents of a sequential file that is already populated as salary.txt in the debug folder. Basically, I want to copy the contents of that file to an array so that I may use a code to go with the intSubscript of the array. Right now it functions as just an array for this purpose, but I want to populate the array with the sequential file first. All attempts to do this, with stream writer etc and readline, I am just getting the first item in the file. I have tried to loop it and still only the first is accessable. Driving me batty, turning to the masses for guidence.[code]