任务和主线程 returns 相同的 ID?

Task and Main Thread returns same Id?

下面的代码 returns 相同的 id,是否是预期的,因为 Task 应该 运行 在一个单独的线程中?

    private void frmSplash_Load(object sender, EventArgs e)
    {
        **MessageBox.Show(Thread.CurrentThread.ManagedThreadId.ToString());**

        var uiScheduler = TaskScheduler.FromCurrentSynchronizationContext();
        Task.Factory.StartNew(() =>
        {
            **MessageBox.Show(Thread.CurrentThread.ManagedThreadId.ToString());**

        }, CancellationToken.None, TaskCreationOptions.None, uiScheduler);

    }

您正在使用 var uiScheduler = TaskScheduler.FromCurrentSynchronizationContext();,这意味着它将为您的 UI 线程使用上下文。

使用Task.Run()或其他TaskScheduler来拥有单独的线程ID

可以在 - https://msdn.microsoft.com/en-us/library/dd997394(v=vs.110).aspx

上找到更多详细信息