我试图连续执行2个任务,但第二个任务在第一个任务完成之前运行,因为它是等待的
var task1 = new Task(async () =>
{
Trace.WriteLine("before delay");
await Task.Delay(1000);
Trace.WriteLine("after delay");
});
task1.ContinueWith(task => Trace.WriteLine("continued"));
task1.Start();
task1.Wait();
Run Code Online (Sandbox Code Playgroud)
我想引出输出
before delay
after delay
continued
Run Code Online (Sandbox Code Playgroud)
但我明白了
before delay
continued
Run Code Online (Sandbox Code Playgroud)
有没有办法阻止task1而不占用线程?
是否可以构建一个自定义调度程序,可以检查通过IObservable的每个元素的值,以便决定处理该项目的线程?
我需要按顺序处理具有相同键的项目,但并行处理不同的键.让RX进行调度是有意义的,而不是为了将每个值分配给线程而必须比我想要的更早离开observable.