[程式開發技巧] 在C# Console中保持程式繼續執行不關閉 | 不使用ReadLine方法
一般要避免Console自動結束執行
都是直接使用ReadLine或ReadKey
但是如果要同時保持執行 & 多執行緒 & 被動取得輸入
上述方法就會不適用
此時使用Task即可達成
[ 使用async/await ]
static async Task Main(string[] args)
{
/* 其他非同步方法或事件,例如WebSocket事件等等,可以持續使用ReadLine... */
await Run();
}
private static async Task Run()
{
await Task.Run(async () => {
await Task.Delay(-1);
});
}
[ 不使用async/await ]
static void Main(string[] args)
{
/* 其他非同步方法或事件,例如WebSocket事件等等,可以持續使用ReadLine... */
Run().Wait();
}
private static async Task Run()
{
await Task.Run(async () => {
await Task.Delay(-1);
});
}
兩者差別只在於Main有無使用關鍵字
此原理是使用Task.Delay方法帶入-1數值
讓程式變成無限等待
但是ReadLine相關方法還是可以正常使用
強制結束時也只要CTRL + C就可以了
留言