Law*_*eld 5 .net c# task-parallel-library async-ctp
我有以下方法使用隐式调度:
private async Task FooAsync()
{
await Something();
DoAnotherThing();
await SomethingElse();
DoOneLastThing();
}
Run Code Online (Sandbox Code Playgroud)
但是,从一个特定的调用站点,我希望它运行在低优先级调度程序而不是默认值:
private async Task BarAsync()
{
await Task.Factory.StartNew(() => await FooAsync(),
...,
...,
LowPriorityTaskScheduler);
}
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?这似乎是一个非常简单的问题,但我有一个完整的心理障碍!
注意:我知道这个例子实际上不会编译:)
创建您自己的TaskFactory实例,使用您想要的调度程序进行初始化.然后调用StartNew该实例:
TaskScheduler taskScheduler = new LowPriorityTaskScheduler();
TaskFactory taskFactory = new TaskFactory(taskScheduler);
...
await taskFactory.StartNew(FooAsync);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1120 次 |
| 最近记录: |