use*_*110 0 c# parallel-processing console multithreading asynchronous
有没有办法在控制台应用程序中使用tasks/await而应用程序终止于await语句?以下不在主要方法范围内.它属于一个单独的类.主叫它.我研究了一下,看了一篇关于使用manualresetevent的文章,但是当我尝试将这个逻辑插入到这个类中时,它没有什么区别,它永远不会超越等待.它刚关闭.
Task Taskone = Task.Run(() => (threadOne.checkData(numberArray,archivePath,dirone,dirtwo, ref missingoneList)));
Task Tasktwo = Task.Run(() => (threadTwo.checkAll(numberArray, archivePath, dirone, dirtwo, ref missingtwoList)));
Task Taskthree = Task.Run(() => (threadThree.checkCnt(numberArray, archivePath, dirone, dirtwo, ref missingthreeList)));
await Task.WhenAll(Taskone,Tasktwo,Taskthree);
Console.WriteLine("all tasks have completed");
Run Code Online (Sandbox Code Playgroud)
先感谢您.
你应该叫Wait()
上Task
从您最异步方法返回Main()
.
这通常是一个可怕的想法,但在控制台应用程序中,这正是您强制代码等待异步完成的方式.
你不应该async void
在任何地方使用.