Несколько лет назад я написал это приложение для рулетки на .NET 1.1, используя C # и Visual Studio.net: http://www.lonniebest.com/Roulette/
С апреля 2007 года я использую исключительно Ubuntu Linux, поэтому сегодня я попытался перекомпилировать этот старый код, используя MonoDevelop IDE. К моему изумлению, код был скомпонован без ошибок, и я смог запустить это приложение Windows Forms в Ubuntu.
Все работало нормально (сначала), , когда я вращал колесо рулетки по одному вращению за раз . Он бы даже работал нормально, если бы я сказал ему крутить его 10 раз подряд. Однако, слишком много (подряд), чем это, приложения аварийно завершают работу, и все, что я вижу на панели «Вывод приложения» в MonoDevelop, это:
The application was terminated by a signal: SIGHUP
(В Visual Studio я ожидал, что это приведет меня к необработанному исключению в моем коде, но MonoDevelop, кажется, только отображает вышеуказанный вывод на панели «Вывод приложения».)
Это приложение действительно забивает Windows Forms, оно обновляет многочисленные элементы формы снова и снова с каждым вращением, так быстро, как это может быть визуализировано. Если вы запустите его в версии .NET, которую я разместил по ссылке выше, вы увидите, что она обновляет все эти элементы формы более 100 раз в секунду. Это может быть необязательно, но и приложение в целом не является, и я намерен это сделать.
Скомпилированные с Visual Studio и работающие в Windows .NET, приложения могут выполнять миллионы вращений без сбоев.
Итак, что может позволить мне сделать этот код более устойчивым в Mono / Linux, в свете описанного выше сбоя "SIGHUP"?
Я приложил MonoDevelop Solution к этому отчету об ошибке:
https://bugzilla.novell.com/show_bug.cgi?id=688014