任务和主线程 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
上找到更多详细信息
下面的代码 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
上找到更多详细信息