2

Linux mint 14 で MONO (C#) を使用してアプリケーションを構築していますが、いくつか問題があります。オプションで外部コンソールを有効にしましたが、デバッグ中は非常にうまく機能していますが、デプロイ後 (デバッグ フォルダーで .exe を開く)、Console.ReadLine(); の直後にアプリケーションが終了します。アイデアはありますか?

public static void InitializeUI() 
        {
            Console.WriteLine("On the bottom line enter the command \"START\" followed by a space and a number representing on how many hours to check for new posts. You can always stop the execution with Ctrl+C \r\n \r\nExample : START 6");
            ParseCMD();
            Console.ReadLine ();
        }
        private static void ParseCMD()
        {
            string cmd = Console.ReadLine();
            string[] commands = cmd.Trim().Split(new string[] {" "},StringSplitOptions.RemoveEmptyEntries);
            int delay = 0;
            if (commands[0].ToLower() == "start" && int.TryParse(commands[1],out delay))
            {
                MainLogic.StartLogic(delay);
            }
            else
            {
                Console.WriteLine("Wrong command");
                ParseCMD();
            }
        }

の後に終了します

string cmd = Console.ReadLine();
4

1 に答える 1

0
    public static void Main(string[] args)
    {
        Console.WriteLine("On the bottom line enter the command \"START\" followed by a space and a number representing on how many hours to check for new posts. You can always stop the execution with Ctrl+C \r\n \r\nExample : START 6");


        if(!ParseCMD(readKeey()))
        {
            ParseCMD(readKeey());
        }

    }private static string readKeey()
    {
        ConsoleKeyInfo cki;
        Console.TreatControlCAsInput = true;

        string temp="";
        do
        {
            cki = Console.ReadKey();
            temp=temp+cki.KeyChar;

        } while (cki.Key != ConsoleKey.Enter);
        return temp;
    }

    private static bool ParseCMD(string text)
    {
        try{
            string cmd = text;
            string[] commands = cmd.Trim().Split(new string[] {" "},StringSplitOptions.RemoveEmptyEntries);
            int delay = 0;
            if (commands[0].ToLower() == "start" && int.TryParse(commands[1],out delay))
            {
                Console.WriteLine("Right command you enter:" + commands[0] + commands[1]);
                return true;
            }
            else
            {
                Console.WriteLine("Wrong command");

                return false;
            }
        }
        catch(Exception ex)
        {
            Console.WriteLine("ex.Message:"+ex.Message);
            return false;
        }
    }
}}

Mono については何もないと思います。代わりに Console.ReadKey() を試していただけますか。

于 2016-08-16T14:38:25.347 に答える