B
brian.twardzik
Hey there,
I've been working on a project which requires me to broadcast a large
volume of information to various subscriber applications. I've been
using an event based architecture combined with using remote-
asynchronous-delegate invocation. This works fine for keeping the GUI
events all in order, however, when it comes to actually sending large
amounts of data I am finding the memory consumption unreasonably high.
For example, I query a database on a 'Provider' application. The
resulting dataset is then given to a 'Subscriber' object through a
remote call.
First, it seems dumping the SQL results into a dataset object consumes
a great deal of memory in the first place.
ie:
int numEffected = myAdapter.Fill(dataTable);
Now, I want to break up the dataset objects I send into smaller pieces
and then reintegrate them on the subscriber end. I know there is an
overloaded version of Fill that allows one to set the startrecord, but
I'm curious if it will ensure a contiguous record.
Can I request:
myAdapter.Fill(0, 4000, dataTable)
myAdapter.Fill(4000, 8000, dataTable)
And not miss anything?
I've been working on a project which requires me to broadcast a large
volume of information to various subscriber applications. I've been
using an event based architecture combined with using remote-
asynchronous-delegate invocation. This works fine for keeping the GUI
events all in order, however, when it comes to actually sending large
amounts of data I am finding the memory consumption unreasonably high.
For example, I query a database on a 'Provider' application. The
resulting dataset is then given to a 'Subscriber' object through a
remote call.
First, it seems dumping the SQL results into a dataset object consumes
a great deal of memory in the first place.
ie:
int numEffected = myAdapter.Fill(dataTable);
Now, I want to break up the dataset objects I send into smaller pieces
and then reintegrate them on the subscriber end. I know there is an
overloaded version of Fill that allows one to set the startrecord, but
I'm curious if it will ensure a contiguous record.
Can I request:
myAdapter.Fill(0, 4000, dataTable)
myAdapter.Fill(4000, 8000, dataTable)
And not miss anything?