c# - 在不并行触发的情况下定义任务
问题描述
您好,有什么方法可以在不触发任务的情况下定义任务?我需要在没有触发的情况下抓住一个任务对象。
------code-------------
Task A=Task.Run(func1);
Task B=Task.Run(func2);
-----some more code----
在这个例子中,A
任务在定义的行中被触发,与程序的其余部分并行(在另一个核心上)。
我希望能够指示何时根据 A 触发任务 B,但仍与程序的其余部分并行。
Something like :
---code---
Task A= something without starting it
Task B= something without starting it
B.ContinueWith(A);
---code----
PS我想从主线程并行编排一些任务,对于这种情况我不需要Task.WhenAll/When Any
解决方案
你可以使用Func<Task>
这样的:
async Task Main()
{
var methodToInvoke = new Func<Task>(() => MyMethod())
// Later on
await methodToInvoke();
}
async Task MyMethod()
{
await Task.Delay(5000);
}
推荐阅读
- terraform - 未遵守 Terraform 版本
- javascript - 我正在尝试将值从数据库传递给 js。但是我收到了升压错误?
- c - 即使对于作为输入的大量数字,如何使此代码也能正常工作?
- exception - MIPS $ra 地址不是字对齐的?
- python-3.x - 如何解决机器人框架中测试自动化的 ssl 证书错误
- elasticsearch - version_conflict_engine_exception 与 _update_by_query
- json - 如何让 fluentd / elasticsearch 将 kubernetes pod 中的“log”key_name 解析为 json?
- regex - Gradle:在构建中使用正则表达式替换多行
- php - PHP 致命错误:具有类类型提示的参数的默认值只能在 /usr/share/php/Symfony/Component/ 中为 NULL
- wpf - 触控笔/笔离开屏幕时的 WPF 触控笔事件