我是多线程C#的新手,所以这可能是一个非常简单/基本的问题。我有一个使用单个工作线程执行任务的控制台应用程序。当工作任务完成时,我想用int来退出控制台应用程序。我很困惑如何做到这一点,因为Main()方法需要返回值,但线程异步执行。这里就是我想要做的事:工作线程在控制台应用程序完成后用int退出
class Program
{
static void Main(string[] args)
{
var exitCode = 1;
var deploymentManager = new DeploymentManager(() =>
{
exitCode = 0;
return exitCode; //<----- doesn't work because main() needs to return something immediately
});
var workerThread = new Thread(deploymentManager.Deploy);
workerThread.Start();
}
}
这说明,我多么想返回退出码值,只有当线程完成并执行回调动作。
只需在主线程中完成工作即可。在启动另一个线程时只有让主线程死掉的意义何在? – Servy 2014-09-02 14:43:23
你的问题是什么? 'Main'被允许返回一个int值 – Jonesopolis 2014-09-02 14:46:06
@Jonesy这并不能解决他的问题。 'Main'线程在他计算出退出代码之前完成。 – Servy 2014-09-02 14:47:06