C# webApi中的嵌套任务从不触发
我正在WebApi应用程序和WPF应用程序中玩TPL。 在WPF应用程序中,我得到了以下代码,实现了我的预期C# webApi中的嵌套任务从不触发,c#,wpf,asynchronous,asp.net-web-api,task-parallel-library,C#,Wpf,Asynchronous,Asp.net Web Api,Task Parallel Library,我正在WebApi应用程序和WPF应用程序中玩TPL。 在WPF应用程序中,我得到了以下代码,实现了我的预期 private void Button_Click(object sender, RoutedEventArgs e) { Debug.WriteLine("UI thread: " + Thread.CurrentThread.ManagedThreadId); Task.Factory.StartNew(() => Debug.W
private void Button_Click(object sender, RoutedEventArgs e)
{
Debug.WriteLine("UI thread: " + Thread.CurrentThread.ManagedThreadId);
Task.Factory.StartNew(() => Debug.WriteLine("Task 1 thread: " + Thread.CurrentThread.ManagedThreadId))
.ContinueWith(ant =>
{
Debug.WriteLine("Continuation on UI thread: " + Thread.CurrentThread.ManagedThreadId);
Task.Factory.StartNew(
() => Debug.WriteLine("Task 2 thread is UI thread: " + Thread.CurrentThread.ManagedThreadId));
},
TaskScheduler.FromCurrentSynchronizationContext());
}
但在webApi应用程序中,continuewith中的嵌套任务从未被调用。
据我所知,唯一不同的是文本。
有人知道为什么嵌套任务从未在WebApi中被调用吗?我怀疑它被调用了,但是
WriteLine
正在其他地方被吞没。你能试着输入一个int count=0
并做一系列互锁的.Increment(ref count)
然后看看你是否得到了正确的计数
结果?我刚试过,还是没有被调用。我注意到一些有趣的事情,continueWith与StartNew在同一线程上运行,尽管我指定使用CurrentSynchronizationContext。