我有一个控制台应用程序,它基本上看起来像这样
class Program
{
static void Main(string[] args)
{
DoStuffService svc = new DoStuffService();
svc.Start();
}
}
class DoStuffService
{
public void Start()
{
Task.Factory.StartNew(() => { LongRunningOperation() });
}
private void LongRunningOperation()
{
// stuff
}
}
如今保证控制台应用程序在LongRunningOperation()
完成之前不退出的最佳方法是什么?同时,是否有一种方式可以通知控制台应用程序(例如用于日志记录)LongRunningOperation()
已经完成。
DelayTilDone()
,Start()
返回一些东西(例如任务或等待句柄)让Program
使用来启动Wait()
是否合理? - kenwarner