I am attempting to reproject a raster. When I get to the point of output.saveas(outputfilename) I get a cross-thread error with the ribbonstatusbar (see below). Is there a way to work around this or fix it?
System.InvalidOperationException: Cross-thread operation not valid: Control 'ribbonStatusBar' accessed from a thread other than the thread it was created on.
at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.PointToClientInternal(Point p)
at System.Windows.Forms.Control.PointToClient(Point p)
at DevExpress.XtraBars.Ribbon.ViewInfo.RibbonItemViewInfo.PointToClient(Point p)
at DevExpress.XtraBars.BarItemLink.ScreenToLinkPoint(Point p)
at DevExpress.XtraBars.ViewInfo.BarLinkViewInfo.get_MousePosition()
at DevExpress.XtraBars.ViewInfo.BarEditLinkViewInfo.CompareLinkState(BarLinkState newState, BarLinkState current)
at DevExpress.XtraBars.ViewInfo.BarLinkViewInfo.UpdateLinkState()
at DevExpress.XtraBars.BarItemLink.CheckUpdateLinkState()
at DevExpress.XtraBars.BarItemLink.LayoutChanged()
at DevExpress.XtraBars.BarItemLink.OnLinkChanged()
at DevExpress.XtraBars.BarItem.OnItemChanged(BarItemLink link, Boolean onlyInvalidate, Boolean onlyUpdateAppearance)
at DevExpress.XtraBars.BarItem.OnItemChanged(Boolean onlyInvalidate, Boolean onlyUpdateAppearance)
at DevExpress.XtraBars.BarItem.OnItemChanged(Boolean onlyInvalidate)
at DevExpress.XtraBars.BarEditItem.OnEditValueChanged()
at DevExpress.XtraBars.BarEditItem.set_EditValue(Object value)
at DotSpatial.RibbonHeader.Progress(String key, Int32 percent, String message)
at DotSpatial.Data.ProgressMeter.SendProgress()
at DotSpatial.Data.ProgressMeter.set_CurrentPercent(Int32 value)
at DotSpatial.Data.ProgressMeter.set_CurrentValue(Object value)
at DotSpatial.Data.Raster`1.GetStatistics()
at DotSpatial.Data.Raster.SaveAs(String fileName, String driverCode, String[] options)
at DotSpatial.Data.Raster.SaveAs(String fileName)
Comments: ** Comment from web user: tval **
System.InvalidOperationException: Cross-thread operation not valid: Control 'ribbonStatusBar' accessed from a thread other than the thread it was created on.
at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.PointToClientInternal(Point p)
at System.Windows.Forms.Control.PointToClient(Point p)
at DevExpress.XtraBars.Ribbon.ViewInfo.RibbonItemViewInfo.PointToClient(Point p)
at DevExpress.XtraBars.BarItemLink.ScreenToLinkPoint(Point p)
at DevExpress.XtraBars.ViewInfo.BarLinkViewInfo.get_MousePosition()
at DevExpress.XtraBars.ViewInfo.BarEditLinkViewInfo.CompareLinkState(BarLinkState newState, BarLinkState current)
at DevExpress.XtraBars.ViewInfo.BarLinkViewInfo.UpdateLinkState()
at DevExpress.XtraBars.BarItemLink.CheckUpdateLinkState()
at DevExpress.XtraBars.BarItemLink.LayoutChanged()
at DevExpress.XtraBars.BarItemLink.OnLinkChanged()
at DevExpress.XtraBars.BarItem.OnItemChanged(BarItemLink link, Boolean onlyInvalidate, Boolean onlyUpdateAppearance)
at DevExpress.XtraBars.BarItem.OnItemChanged(Boolean onlyInvalidate, Boolean onlyUpdateAppearance)
at DevExpress.XtraBars.BarItem.OnItemChanged(Boolean onlyInvalidate)
at DevExpress.XtraBars.BarEditItem.OnEditValueChanged()
at DevExpress.XtraBars.BarEditItem.set_EditValue(Object value)
at DotSpatial.RibbonHeader.Progress(String key, Int32 percent, String message)
at DotSpatial.Data.ProgressMeter.SendProgress()
at DotSpatial.Data.ProgressMeter.set_CurrentPercent(Int32 value)
at DotSpatial.Data.ProgressMeter.set_CurrentValue(Object value)
at DotSpatial.Data.Raster`1.GetStatistics()
at DotSpatial.Data.Raster.SaveAs(String fileName, String driverCode, String[] options)
at DotSpatial.Data.Raster.SaveAs(String fileName)
Comments: ** Comment from web user: tval **
My work around for now is to save it through GDAL, and not in Dotspatial (e.i, the iraster)