在下面的代碼中,在B方法中,代碼Trace.TraceInformation(「B-Started」);永遠不會被召喚。異步方法沒有並行運行
該方法是否應該平行運行?
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
private static async Task A()
{
for (;;)
{
}
}
private static async Task B()
{
Trace.TraceInformation("B - Started");
}
static void Main(string[] args)
{
var tasks = new List<Task> { A(), B() };
Task.WaitAll(tasks.ToArray());
}
}
}
也許這是一個忙碌的等待質量。 A()是否將CPU固定在100%? – MatthewMartin
我有4個處理器。一個是100%。仍然應該在並行(並行)中運行? –
@FernandoSilva參見'Task.Run'。只添加'async'不會使它們平行。 – Eser