We have been using the Isolines (GridIsoLineLayer, GridFeatureLayer) features to plot data we generate from simulations. The simplest plot use a 5 x 5 grid cell count and the isolines generate in seconds (or less). We have noticed a significant dropoff as the grid cell count increases. For example with a 50 x 50 grid the plots generate in around a minute. At 100 x 100 it may take several minutes. The largest I have worked on personnally was about 800 x 800 and it took around 3 hours and 20 minutes. Our user have tried some larger plots but I do not have a time for the plotting operation.
Our question is whether it is possible to generate the isolines in a secondary thread so that the GUI of our application (and the window containing the MapSuite map can continue to be responsive? As it is right now, when we call the method to generate the GridIsoLineLayer and GridFeatureLayer and then call the winformMap.Refresh to render it on the map, the thread that controls the GUI of our application has to wait until the isoline generation completes. This causes our GUI to have partially repainted or unresponive repainting of the GUI. It seems that the actual guts of the the GridIsoLineLayer (the interpolation calculations) are not being performed until I call the winformMap.Refresh. Since this also update the MapSuite map window, I have not tried it in a separate thread because we have had issues in the past with multiple threads accesing the GUI of our application. Is there a model for the code that will allow us to generate the isolines as a background or secondary thread and then render the output to the map in the thread that controls the GUI windows?
Richard