小编ben*_*mos的帖子

等待调用异步方法的Task完成而不阻塞线程

我试图连续执行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而不占用线程?

c# task task-parallel-library async-await

7
推荐指数
1
解决办法
1659
查看次数

Reactive Extensions(RX)自定义调度程序C#

是否可以构建一个自定义调度程序,可以检查通过IObservable的每个元素的值,以便决定处理该项目的线程?

我需要按顺序处理具有相同键的项目,但并行处理不同的键.让RX进行调度是有意义的,而不是为了将每个值分配给线程而必须比我想要的更早离开observable.

c# system.reactive

6
推荐指数
1
解决办法
442
查看次数