Event Consumption For Concurrency In A Multicore Application?
Jan 18, 2010
Target machine 4 core AMD I have an event that is raised my the main thread of the application. The event is consumed by several different classes in the application. I want them all to run concurrently up to the max cores available and then que the rest in order.The work routine in each class is relatively small but concurrency is the goal.Considering this.
A. Create a background worker on each classes initialization and have the event handler start the worker.
B. Create a delegate to the do-work sub that is called by the event handler
A- Pros - worker is only created once and reusable so only pay creation cost once.
A-Cons could create a ton of workers that consume resources eventually.
give me some example code to insert rows of datagridview into a sql express database table? Also, how do I manage concurrency as it is a multi user application?
the problem here happends every time i tried to change a record that's been allready saved.Private Sub PropuestasBindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PropuestasBindingNavigatorSaveItem.Click
I have written an application to perform a simple CRUD operation i've used MVC design pattern... DAL was designed using the wizard. I was able preserve the olds value of teh fields of EMployee class using a seperatemethod
PreserveOldValues(){ //code}
in the SearchByIndex() i call the fill method and i used the data to initialize the current Employee object also i preserve those values using PreserveOldValues() the i call update() and internall i pass the preserved values......However it doesnt do concurrencies and updates..
What i have heard is, that a program dont get much faster on a dual core (or quad core) than on a single core processor, because windows assigns the program to just one core. (but still a little faster because other programs run on the other cores instead or something like that).And if you want to exploit the power of multicores, you have to code in a way so that different calculations get sent to different cores simultanuasly and then gather the result afterward.First of, is this correct? And if so (or if not so) is it possible to program in vb to exploit multicores. I mean can you create 4 threads and assign them to each core, or does this require some heavy C++ coding?The reason im asking is because and application i have created uses biometric identification (fingerprints) and this requires somcalculations, the more fingerprints that gets stored. Then if i somehow could make it use more codes, maybe this will be a little faster?Is this possible in vb, or would i get way in over my head for trying to work with th
Will LINQ's parallel extensions automatically detect the number of cores and utilize them all? Conversely, if the code is run on a single core machine, will it still work or do I have to detect the number of cores and tell PLINQ how many to run across? I don't have access to any single core machines to test my code on so I can't even test this for myself and I haven't been able to find any useful info elsewhere...
Also, while it might at first seem obvious when to use parallelism, are there any rules of thumb regarding where it should and as importantly should not be used? I don't necessarily program in a specific environment. I tend to divide my time somewhat equally (depending on project) between web, client/server apps, windows apps, windows service and console utilities depending on the task at hand.
I've been profiling a WinForm's application using ".NET Memory Profiler".I can't quite seem to understand how my application is growing to 1GB, then 2GB, then 3GB of usage - according to windows task manager.
The private bytes using that tool, and "Total Bytes in All Heaps" shows only as 70MB or so. At the top of my list of instances hanging around, they are mostly String, or WeakReferences to lots of little objects.
All the application is doing is showing a form that loads data from a database. I repeat the show/dispose cycle of the form about 100 times and the growth is continuous.I've tried about 3 memory profiling tools now and none of them are showing me where this enormous amount of memory consumption is coming from.
I am looking to record information about the computers power consumption over time, is there any way I could do this using vb, I can get the current voltage from the processor but do not know the current therefore can not work out the wattage. I know of application which do have power consumption recorders but I would like to create my own.
I found what seems to be an easy and effective way to reduce the memory consumption of my vb.net app. What I need to know is how "correct" or "proper" is the method I'm using for my application and what exactly is going on behind the scenes that I should worry about? I want to release memory every time a form closes. Here is how I reduce the required memory of my program:[code...]
According to the language specification guide for VB.NET Section 10.9.3. The enumerator expression in a for each loop is copied over into memory. If I have a list of 10000 objects that list will be in memory twice for the code below? dim myList as new list(of bobs) 'put 10000 bobs in my list for each x In myList 'do something next
If I were generating the list from a linqQuery or some other such query it would make sense to generate that list at the for each loop statement thus not having the list in memory twice for example. for each x in myList.where(function(x) x.name = Y) 'do something next
If the LINQ query is unreadable on the for each loop, do I forgo readability and just put it on the for each loop declaration line? Should I declare the list in its own variable and just bite the bullet and have the list exist twice in memory?
I have a VB Function (in Visual Studio 2008 with .NET 3.5) that opens up a connection to an Oracle database and queries the database for information. Apparently after some trial and error, I discovered when the SQL statement is being processed and filling the dataset, it apparently is taking up too much memory trying to complete the task. I'm running into System.OutofMemory exceptions and other unpleasantness.I'm wondering, is there some sort of program out there to measure memory consumption of your SQL code that is being processed in a Visual Studio application?
I have a VB Function (in Visual Studio 2008 with .NET 3.5) that opens up a connection to an Oracle database and queries the database for information. Apparently after some trial and error, I discovered when the SQL statement is being processed and filling the dataset, it apparently is taking up too much memory trying to complete the task.I'm running into System.OutofMemory exceptions and other unpleasantness.I'm wondering, is there some sort of program out there to measure memory consumption of your SQL code that is being processed in a Visual Studio application?
I did a project (College Management) in vb.net 2008 which contains 13 forms in it. I designed the different functions in a different normal form, i.e. frmAdmission, frmSearch etc. When the project run's the main form is loaded. When user chooses a particular function say 'frmSearch' then the main form is unloaded and the form frmSearch is loaded. Now my lecturer told me to use MDI forms instead of normal forms because, normal forms takes larger memory than the MDI forms.
I'm trying to complete this airline reservation application, but having a problem in this part of the question:Creat an event handler for the FlightBindingSource's PositionChanged event: select FlightBindingSource in the class Name combobox then select position changed in method name combobox to creat the FlightBindingSource's PositionChanged event handler. Write a code to access the currently displayed flight object and pass its flightNumber to method DisplayPassengers as a decimal.This Is my code so far:
HTML
Public Class AirlineReservationForm Private database As New ReservationsDataClassesDataContext() Private Sub FillAll()[code].....
i am doing a small project for my business and i got stuck with this 2 weeks ago and still no progress.I have an access db table "store" that has columns: (filldate,brand,model,plateno,mileage,litres) where i am storing these info each time a car in my company fills gas. For example8/25/2011,Renault,Megane,5487844,3943,20).What i want to do now is to display in a datagrid the total consumption of gas (litres) with the kilometers driven (mileage) between 2 dates.
The way I'm doing this is performing multiple reads on different tables to extract data. In this case I'm reading 2 different MS Access 2003 tables. I then dump the data into a "Row" variable that I have Publicly defined for each Class (each Access table is defined as a Class containing all the fields, Add, Change, Delete, and Select functions).For example, my first read extracts all the fields from the "tblClients" table and loads them into the form fields via the "clientROW" object. My second read extracts all the records from the "tblClientAddr" table associated with the selected Client and loads them into their form fields respectfully via the "addressROW" object.
I've got a problem with my latest project, I get concurrency error but I'm the only one working on the database.It's an sql server 2005 express database, and i'm making a remote connection. I have a related database or how do I say it, it's with relations. But the strange thing is that I can update the first table but the 2nd one not. Well here is my code, don't really know how to explain it better but I get an error when updating my orderinformation table but when only changing values in orders that table updates perfectly. [code]
My users are getting this error when trying to update the database:
"Concurrency violation: UpdateCommand affected 0 of the expected 1 records"
All the users are doing is clicking a button which updates a record.No two users are updating the same record or even within the same column. They could be updating within the same row but still not the same record.It seems to be happening when the program is open for a little while and they come back and try to update the database through the program. I have read a little bit about this error but none seem to lead to a clear solution.It seems like the database connection is timing out due to inactivity?Here is my update command:
vb.net
Private Sub btnComplete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnComplete.Click Me.txtComplete.Text = Date.Today[code].....
I'm having an issue with a concurrency violation when I save my data(only on one form). All other data forms are working fine. This form has a lot of code, so to isolate the problem I added a new form to the project and dragged the table from my datasource, in detail, to the form. this is the only code in the form,
In our database we have gigantic tables (it was initially built 20 years ago). We are on the process of developing it.
Some tables contain rowversion and optimistic concurrency. We were wondering if there is a way to just correspond rowversion to the modification of some specific columns, but not all of them. In Normal Case, T-SQL which is generated then would be huge.
I get an error when updating a related table, the main table can be updated but the related gives me a concurrency error but I don't know why. Btw I'm the only one using the program and it's connecting to sql server 2005 express.Inserting works like a charm.My piece of code, I hope you get it. The concurrency error is given on Me._objtblOrderinformatieA.Update(Me.objdtsOrders.orderInformatie)
If MessageBox.Show("Bent u zeker dat u deze record wilt wijzigen?", "Orderbeheer", MessageBoxButtons.YesNo) = 6 Then update_dataset() Me._objtblOrdersA.Update(Me.objdtsOrders.orders)
We got an old system here in .NET 4.0 using an Oracle DB. At some point, some calculus are made and the system "locks" that register in the table using the following command: "SELECT [the registry that will be update by the calculus] FOR UPDATE NOWAIT". So if anyone tries to calculate or update the registry with that ID it won't work. After calculating, the system connects to the DB again and then "releases" the registry by simply executing a Rollback command.
Theoretically, this is correct for the system(although I don't like it). Anyway, here is the thing: if something is being calculated(and these calculous take like 5 minutes to finish) and in the middle of the calculous I close the browser, the registry will still be "locked", only being unlocked when IIS restarts(actually I dunno if it's released first, I forced IIS restart 'cause it was taking too long). [Code]
I am doing a small project and I am using vb.net with MS access database. I am facing a Concurrency issue sometimes when I try to save data in the datagried view. I have added the datagried view by dragding and drop the table from the data source. Only one user is using the form to save data at one time. I think it works properly unless I moved from record to record then it gives me an error. "Concurrency, 0 records updated from expected 1....."
i understand that web service creates its own sessions so thats no problem to multi-thread. but i am writing my results into the database and files. how to do i do my concurrency control for writing into file and database here, can i do it on my calling app which is a console app or i will have to do it in my web service. i am not returning anything to the calling app.
I'm new to vb.net and its database methods so I'm a bit confused by these datasets and grids and table adapters.
I'm getting:Concurrency violation: the UpdateCommand affected 0 of the expected 1 records.
On this line:frmMain.AccountsTableAdapter.Update(frmMain.DsAccounts)
I have a datagridview attached to a dataset. I also have a button that the user can press to update information in the datagrid based on a website. But I often get that error when it comes to actually updating the table.
I am trying to make a simple demo of a DataGridView bound to a database table. I want to add a row, delete a row, and save the table. I used the IDE to do just about everything. It created the BindingSource when I set the datasource of the DataGridView to a table of a DataSource I added to the project.
Now the only code looks like this: Public Class Form1 Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load [Code] .....
I set the AutoIncrementStep to 1 in my Key field in the dataset (the .xsd). I left the Key field visible in the DataGridView and it seems to be adding the correct Key when a row is added. However, I still occasionally get the "concurrency violation" error if I just mess around with these 3 buttons. Any idea why/how to prevent that?
get around the following problem please?I have an Access database which can be accessed by more than one instance of my application (which is) a Form with a DataGridView on it.I populate the DGV with
Form1.Validate()Form1.CHECKLISTBindingSource.EndEdit()Form1.CHECKLISTTableAdapter.Update(Form1.chkDataSet.CHECKLIST) The Access Database can then be updated via the DGV by a button click (which runs the code above (to copy across the latest copy of the DB) and then runs the code below to copy your changes to the DB)
I'm trying to update a Access database. I'm new to this and I've reviewed an Ado tutorial early today. I'm trying to apply what is taught but I'm getting an error message and I can't seem to get passed it.
In my code I have an Add, Update, and Delete process. The Add and Delete processes work just fine. It is only when I go to update the database that I get the following message."Concurrency violation: the UpdateCommand affected 0 of the expected 1 records."
I am getting a concurrency error on a truegrid. Basically I put some data in a row and and then do a dataadapter update command on the bound dataset. This works fine until I then modify the same row and do an update. How can I make it so that I don't get an error?