Hi Daniel and Jisha,
We have taken care about not accessing the gird from any thread other than the main app thread. So I do not think that is the issue.
In any case, we were unable to recreate this in our dev environment and so far it has not happened again in release env. So I don't really have anything else to go by. Thanks for the help, I will get back to you if it happens again, and if I can manage to get more information.
Is it possible that the grid is being updated from multiple threads? Please let us know.
We use Syncfusion grids, in virtual mode, extensively in our application.
We noticed the following exception from one of our users. We haven't managed to recreate this issue in a development envirnoment, but this is happening inside the syncfusion grid's paint method, so I wanted to know if you have any idea about what may have caused this?
thanks and regards,
2008-09-22 17:14:49,668 ERROR  (ExceptionManager:0) - Probable I/O race condition detected while copying memory. The I/O package is not thread safe by default. In multithreaded applications, a stream must be accessed in a thread-safe way, such as a thread-safe wrapper returned by TextReader's or TextWriter's Synchronized methods. This also applies to classes like StreamWriter and StreamReader.
System.IndexOutOfRangeException: Probable I/O race condition detected while copying memory. The I/O package is not thread safe by default. In multithreaded applications, a stream must be accessed in a thread-safe way, such as a thread-safe wrapper returned by TextReader's or TextWriter's Synchronized methods. This also applies to classes like StreamWriter and StreamReader.
at System.Buffer.InternalBlockCopy(Array src, Int32 srcOffset, Array dst, Int32 dstOffset, Int32 count)
at System.IO.StreamWriter.Write(Char buffer, Int32 index, Int32 count)
at System.IO.TextWriter.WriteLine(String value)
at System.IO.TextWriter.SyncTextWriter.WriteLine(String value)
at Syncfusion.Diagnostics.TraceUtil.TraceExceptionCatched(Exception e)
at Syncfusion.Windows.Forms.Grid.GridControlBase.OnPaint(PaintEventArgs pe)
at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
at System.Windows.Forms.Control.WmPaint(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at Syncfusion.Windows.Forms.ScrollControl.WmPaint(Message& msg)
at Syncfusion.Windows.Forms.ScrollControl.WndProc(Message& msg)
at Syncfusion.Windows.Forms.Grid.GridControlBase.WndProc(Message& msg)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)