Example #1
0
        private void CoreRun()
        {
            if (mRebuild || mLibBuild)
            {
                mCore.Run();
                mRuntime.RunCleaners();
                return;
            }
            while (true)
            {
                try
                {
                    mCore.Run();
                }
                catch (MoSync.Util.ExitException e)
                {
#if !LIB
                    mRuntime.RunCleaners();
                    if (mLoadProgramStream != null)
                    {
                        Stream s = mLoadProgramStream;
                        mLoadProgramStream = null;
                        Util.RunActionOnMainThreadSync(
                            delegate() { LoadProgram(s); });
                        s.Close();
                        continue;
                    }
                    else if (mLoadProgramFlag)
                    {   // reload original program
                        mLoadProgramFlag = false;
                        Util.RunActionOnMainThreadSync(
                            delegate() { LoadProgram("program", "resources"); });
                        continue;
                    }
                    else
                    {   // no reload
                        throw e;
                    }
#endif
                }
            }
        }