c#console app,break readline(),thread looping?

时间:2018-03-08 10:45:27

标签: c# multithreading console-application

所以我在控制台应用程序中有一个方法,用于呈现菜单并等待用户输入:

 public void RenderMainMenu()
    {
        Console.WriteLine("Pick one option:");
        Console.WriteLine("[1] Option1");
        Console.WriteLine("[2] Option2");

        var userInput = Console.ReadLine();

        // ... other code of what do to with user input
    }

我还有一个在应用程序启动时创建的类,这个类负责在应用程序运行时始终在后台循环遍历列表:

class CheckList
{
    Thread t;
    List<DateTime> list;
    public CheckList()
    {
        list = new List<DateTime> { DateTime.Now.AddMinutes(5), DateTime.Now.AddMinutes(1) };
        t = new Thread(new ThreadStart(LoopList));
        t.Start();
    }

    private void LoopList()
    {
        foreach (DateTime d in list)
        {
            if (d >= DateTime.Now)
            {
                // Get out of main menu and display a new menu now.
            }
        }
    }
}

我如何实现这一目标?

甚至可以在Console.App上实现这样的结果吗?我的意思是: 有一种菜单(menu1,menu2,menu3)可供您随时使用,并在导航和执行操作时为其获取userInput,但一旦时间到了 - 会弹出一些菜单,此userInput将转到弹出的新菜单...?

1 个答案:

答案 0 :(得分:0)

我认为你在main方法中调用另一个线程。除非你分享一些代码,然后我们才能理解你想说的内容,否则它并不清楚。您能否分享一下您的源代码,以便我们为您提供帮助?

DateTime MyDate = DateTime.Now;
            MyDate.ToString("dd-MM-yyyy");