首页 > 解决方案 > C# 在异步 void 完成后打开一个 void

问题描述

当我在控制台中按 6 时,它会打开 async void Mes()。现在,当它完成工作时,我想回到我的静态 void Menu()。当我按 1 时,它应该打开我创建的下一个异步 void,但是在我输入数字并按 Enter 后,控制台关闭。观看下面的代码。

已完成的异步 void 的代码

public static async void Mes()
        {
            Console.WriteLine("Enter username: ");
            var hg = Console.ReadLine();
            Console.WriteLine("Enter your message: ");
            var mc = Console.ReadLine();
            var uname = await api.GetUserAsync(hg);
            var id = uname.Value.Pk.ToString();
            var ms = await api.SendDirectMessage(id, null, mc);
            Console.WriteLine(ms.Succeeded ? "Successfully sent" : "Couldn't be sent\n\t" + ms.Info.Message);
            Thread.Sleep(1500);
            Menu();
        }

现在静态 void Menu() 打开,但在我点击一个数字后,控制台关闭

public static void Menu()
        {
            Console.WriteLine("Option 1");
            Console.WriteLine("Option 2");
            Console.WriteLine("Option 3");
            Console.WriteLine("Option 4");
            Console.WriteLine("Option 5");
            Console.WriteLine("Option 6");
            string ff = Console.ReadLine();
            if (ff == "1")
            {
                OS();
            }

            if (ff == "2")
            {
                SS();
            }

            if (ff == "3")
            {
                SV();
            }

            if (ff == "4")
            {
                COL();
            }

            if (ff == "5")
            {
                Upl();
            }

            if (ff == "6")
            {
                Mes();
            }
        }

标签: c#

解决方案


推荐阅读