1 回答

TA貢獻1859條經驗 獲得超6個贊
TaskCreationOptions調用時無法指定Task.Run。你需要使用
Task.Factory.StartNew(() => {/*...*/}, TaskCreationOptions.AttachedToParent, default(CancellationToken), TaskScheduler.Default)
順便說一下,Task.Run默認情況下設置TaskCreationsOptions為DenyChildAttach,因此如果您想要一個子任務,您還需要TaskCreationOptions為父任務指定。所以它看起來像這樣:
Task parent = Task.Factory.StartNew(() =>
{
Console.WriteLine("Parent task starting...");
Task child = Task.Factory.StartNew(() =>
{
Console.WriteLine("Child task starting...");
Thread.Sleep(1000);
Console.WriteLine("Child task completed!");
}, TaskCreationOptions.AttachedToParent, default(CancellationToken), TaskScheduler.Default);
}, TaskCreationOptions.None, default(CancellationToken), TaskScheduler.Default);
parent.Wait();
- 1 回答
- 0 關注
- 222 瀏覽
添加回答
舉報