2016-01-06 86 views
0

我正在编写一个C#应用程序。我有一个从数据库验证数据的主要过程。如果我有用户输入,计时器会检查每100个滴答。在我得到用户输入后,我的主进程继续进行(它在开始时等待用户输入)。在验证并做了多件事情之后,方法就完成了。事情是,我希望它再次开始等待下一个输入。重新启动方法

我正在考虑在每个可能的结束过程中再次调用该方法。我有一种感觉,这会创造一个资源沉重的计划,虽然(不是最坏的事情,但最好没有坏习惯比几个权利?)。

例子:

bool cont = false; 

public void process() 
{  
    while (cont == false) {;} 

    //Various sorting criteria that all end up with cont = false; process(), the userinput has been processed. 

} 

timer1 tick event 
{ 
    if (userinput) 
     cont = true; 
} 
+0

这里的问题究竟是什么? –

+0

我的不好。我想知道是否有任何适当的方法让它重新开始。我觉得我的方式(不断调用方法)会非常耗费资源。 – Gijsbouwse

+0

你可以使用递归 –

回答

0

因为你不看见你将如何获取用户输入的,我不实现这一个。但你的问题的主要逻辑是:

class MainClass 
{ 
    public static void Main() 
    { 
     MyRecursiveFunction(); 
     AfterUserInput(); 
    } 

    public static void MyRecursiveFunction() 
    { 
     if (userinput) 
     { return; } 

     // Waits 100 ticks to check again 
     Thread.Sleep(new TimeSpan(100)); 

     MyRecursiveFunction(); 
    } 

    public static void AfterUserInput() 
    { 
     // All that you need to do after the user input 
    } 
}