t1も、t2も同じタスクですが、t2は処理が止まったままConsole.WriteLine("goal");まで到達できません。
t1と、t2では何が違うのでしょうか?
using System; using System.Threading; using System.Threading.Tasks; class Program { static void Main(string[] args) { Async(); Console.Read(); } static async Task Async() { Task t1 = Task.Delay( 999); Task t2 = new Task(() => Thread.Sleep( 999)); await t1; //OK await t2; //NG Console.WriteLine("goal"); } }
何を実現したいがためのコードなのでしょうか。要件具体的に記載してください
Console.WriteLine("main")を実行したいです。
Task t2 = Task.Run(() => Thread.Sleep(1000)); としたらどうなりますか?
それだともちろん問題ないですが、
どうしてt2は駄目で、t1は問題なく処理されるのかの違いが知りたいです。
質問は編集できますので。
あと、「OK」「NG」「駄目」「できない」ではなく、起きている現象を記載してください。
今更ですが、後から見られる方のために質問をわかりやすく修正しておきました!
回答2件
あなたの回答
tips
プレビュー