Проблемы при использовании из сервиса.
Проблемы при использовании из сервиса.
Добрый день!
При сохранении получил исключение вида:
System.InvalidOperationException: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.
at System.Windows.Forms.MessageBox.ShowCore(IWin32Window owner, String text, String caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, Boolean showHelp)
at System.Windows.Forms.MessageBox.Show(String text, String caption)
at CADImport.CADImage.Draw(Graphics e, RectangleF Rect, Region visibleRegion)
at CADImport.CADImage.Draw(Graphics e, RectangleF Rect)
at CADImport.CADImage.(DRect , PixelFormat )
at CADImport.CADImage.SaveToFile(String FileName, ImageFormat ImgFormat, DRect curRect)
Виноват был, конечно, сам - два потока пытались сохранить в один файл, но естественно не ожидал, что кто-то будет пытаться вывести что-то на экран.
С уважением, Михаил.
При сохранении получил исключение вида:
System.InvalidOperationException: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.
at System.Windows.Forms.MessageBox.ShowCore(IWin32Window owner, String text, String caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, Boolean showHelp)
at System.Windows.Forms.MessageBox.Show(String text, String caption)
at CADImport.CADImage.Draw(Graphics e, RectangleF Rect, Region visibleRegion)
at CADImport.CADImage.Draw(Graphics e, RectangleF Rect)
at CADImport.CADImage.(DRect , PixelFormat )
at CADImport.CADImage.SaveToFile(String FileName, ImageFormat ImgFormat, DRect curRect)
Виноват был, конечно, сам - два потока пытались сохранить в один файл, но естественно не ожидал, что кто-то будет пытаться вывести что-то на экран.
С уважением, Михаил.
Re: Проблемы при использовании из сервиса.
Здравствуйте Михаил.
Вы получили это исключение, т.к. операционная система попыталась отобразить сообщение, вызванное попыткой записи из двух разных потоков в один файл, в неинтерактивном пользовательском режиме. Для того чтобы избежать аналогичных исключений, в MessageBox.Show() определите перечисление MessageBoxOptions как ServiceNotification или DefaultDesktopOnly.
С уважением, Александр.
Вы получили это исключение, т.к. операционная система попыталась отобразить сообщение, вызванное попыткой записи из двух разных потоков в один файл, в неинтерактивном пользовательском режиме. Для того чтобы избежать аналогичных исключений, в MessageBox.Show() определите перечисление MessageBoxOptions как ServiceNotification или DefaultDesktopOnly.
С уважением, Александр.
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support
Chat support on Skype: cadsofttools.support
Re: Проблемы при использовании из сервиса.
> Для того чтобы избежать аналогичных исключений, в MessageBox.Show() определите перечисление MessageBoxOptions как ServiceNotification или DefaultDesktopOnly.
Я бы, конечно, с удовльствием, но MessageBox.Show вызываю не я. Судя по stack-trace это делается из метода CadImage.Draw. Возможно я что-то недопонимаю.
Я бы, конечно, с удовльствием, но MessageBox.Show вызываю не я. Судя по stack-trace это делается из метода CadImage.Draw. Возможно я что-то недопонимаю.
Re: Проблемы при использовании из сервиса.
Вы правы, MessageBox.Show вызывается из нашей сборки. Возможно в будущих версиях мы учтём появление подобных ситуаций. Постарайтесь избегать использования сборки подобным образом.
С уважением, Александр.
С уважением, Александр.
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support
Chat support on Skype: cadsofttools.support