【发布时间】:2011-03-02 02:20:57
【问题描述】:
我的情况是,我的程序需要进行处理,然后等待一段时间,比如说 5 秒,然后再次进行相同的处理。
我不知道如何实现逻辑。
我开发了一个逻辑,代码如下:
private void ProcessEmail()
{
PprocessEmail:;
//Do whatever you want
System.Threading.Thread.Sleep(5000);
goto ProcessEmail;
}
这段代码的作用: 我只需要调用这个方法一次,它会做处理然后等待5秒然后再处理。
到目前为止,上面的代码运行良好,但我听说在编程中使用“goto”语句并不好。
我想知道,这段代码会有什么副作用,或者有没有其他有效的方法来做同样的事情。
【问题讨论】:
-
您知道“while”和“for”等控制流结构的存在吗?
-
嗨,谢谢大家的回复,我知道循环。但是除了循环之外还有其他有效的方法吗?就像我所做的那样。你明白我想要什么样的功能。
-
有递归,但我想在这种情况下你不希望这样。循环有什么问题?
-
是的,你是对的,我将实现 while,我考虑过递归,但递归会比使用 while 消耗更多的内存,因为我必须在永远持续运行的窗口服务中实现这一点。我对递归的看法不对,zerm 怎么说?
-
每次调用函数都会占用调用栈上的一些空间,所以如果你进行无限递归,迟早你会用完栈空间并最终得到一个栈溢出:)