G
Guest
Hi,
I have a MDI WinForm Client App. I keep a static Master DataSet and a static
Master Hashtable. When I connect to the Server, it sends me a Master DataSet
and I copy it to the static Master DataSetand also create a static Master
Hashtable with DataRow as value and Symbol as a key. I need Master Hashtable
for fast retrival.
That was the initial connect. Updates from server also comes as a Hashtable
with name-value pairs via TIBCO Message Bus. I retrive the Symbol using
"SYMBOL" as key from the update Hashtable, get the DataRow from static Master
Hashtable using that symbol and update the DataRow with name-value update
Hashtable.
Inside MDI Form I can create n number of forms, each from would have a
different view on the static Master DataSet using .NET DataView.
Everything runs fine. All the views get updates, since all are bound to a
DataView on a Static Master DataSet. Then suddenly after 2-3 hours, the
client doesn't respond and the size of the TIBCO message bus grows.
It hung up on DataRow.AcceptChanges() method.
My question is, is it alright to update the DataSet on a thread different
than a thread that created the Grid to which the DataSet is bound? I know
that when you update a control you have to call Invoke or Begin Invoke on
that control and etc. etc. .....
If its not the right way of doing then I can't afford to update the DataSet
on the main thread that created the forms and controls (including grid)
because the number of updates are too high (10000 per minutes with ~90
columns in a row) and that would affect user interaction with the application.
Is there any workaround?
Any help/idea is appreciated.
Thanks a lot,
Lalit
I have a MDI WinForm Client App. I keep a static Master DataSet and a static
Master Hashtable. When I connect to the Server, it sends me a Master DataSet
and I copy it to the static Master DataSetand also create a static Master
Hashtable with DataRow as value and Symbol as a key. I need Master Hashtable
for fast retrival.
That was the initial connect. Updates from server also comes as a Hashtable
with name-value pairs via TIBCO Message Bus. I retrive the Symbol using
"SYMBOL" as key from the update Hashtable, get the DataRow from static Master
Hashtable using that symbol and update the DataRow with name-value update
Hashtable.
Inside MDI Form I can create n number of forms, each from would have a
different view on the static Master DataSet using .NET DataView.
Everything runs fine. All the views get updates, since all are bound to a
DataView on a Static Master DataSet. Then suddenly after 2-3 hours, the
client doesn't respond and the size of the TIBCO message bus grows.
It hung up on DataRow.AcceptChanges() method.
My question is, is it alright to update the DataSet on a thread different
than a thread that created the Grid to which the DataSet is bound? I know
that when you update a control you have to call Invoke or Begin Invoke on
that control and etc. etc. .....
If its not the right way of doing then I can't afford to update the DataSet
on the main thread that created the forms and controls (including grid)
because the number of updates are too high (10000 per minutes with ~90
columns in a row) and that would affect user interaction with the application.
Is there any workaround?
Any help/idea is appreciated.
Thanks a lot,
Lalit