我有一个C#控制台应用程序,该应用程序开始运行时需要立即调用一个函数,在本示例中为ExecuteForLoop();
。
这是我的C#控制台应用程序开始运行的方式:
static void Main()
{
ExecuteForLoop();
Console.Write("Test");
}
在此示例中,功能
ExecuteForLoop()
可以做到这一点:ExecuteForLoop()
{
int example = 0;
for(;;)
{
example++;
}
}
问题是,如果我调用
ExecuteForLoop()
函数,则Console.Write("Test");
函数将不会立即执行。一旦"Test"
中的for(;;)
循环停止循环,ExecuteForLoop()
将仅输出到我的控制台。如何调用
ExecuteForLoop()
并继续执行代码,以便在Console.Write("Test");
函数内的for(;;)
循环仍在运行时将功能ExecuteForLoop()
输出到我的C#控制台应用程序中? 最佳答案
使用多线程:
static void Main()
{
var t = new Thread(() => ExecuteForLoop());
t.Start();
Console.Write("Test");
t.Join() // See this answer : http://stackoverflow.com/a/14131739/4546874
}
另外,这可能不完全是您想要的。您确定方法中需要无限循环吗?如果不是,请参见
for-loop
的语法并相应地设置退出条件。不会打印
"Test"
,因为在上一行中,您调用了ExecuteForLoop()
方法,在该方法中程序进入了无限循环。由于两个语句都在同一个线程中,因此除非前一个线程在前一个线程,否则后者无法执行,这当然是不可能的。