私はタスクとスレッドに精通していて、私はすでにthisを知っています。ここでタスクの生涯子と親
は私のコードです:
static void Main(string[] args)
{
var t = Task.Factory.StartNew(() => {
Thread.Sleep(3000);
Console.WriteLine("Child");
}, CancellationToken.None, TaskCreationOptions.AttachedToParent, TaskScheduler.Default);
Task.WaitAll(t);
Console.WriteLine("Parent");
}
はConsole.WriteLine("Child");
は、言い換えればTask.WaitAll(t);
の呼び出しregardelss呼び出されるん:ALLを実行するためにそこの方法は、彼ら(とではないが、すぐ親として殺さwaiting
せずにサブタスクを開始されています実行を終了する)?
スレッドを使用して 'thread.IsBackground = false;'を設定するとどうなりますか? – Emaborsa
@Emaborsaスレッドプールスレッドの場合は絶対に行うべきではありません。これは特に、バックグラウンドスレッドを持つことを想定して設計されているため、混乱させるべきではありません。それは問題を引き起こす可能性が非常に高いです。独自の新しいスレッドを作成している場合は、デフォルトでフォアグラウンドスレッドになります。 – Servy