使用Task.Run时参考continuewith任务

时间:2017-06-17 11:42:10

标签: c# task-parallel-library

假设我有

Task t1 = Task.Run(() =>
{
    // do something
}).ContinueWith((t) => {
    int x;
});

我认为t1是ContinuteWith Task的引用。我怎样才能获得第一个任务的参考?它有可能吗?

是否有快捷方式或是否必须使用new创建任务,然后单独附加continue?

2 个答案:

答案 0 :(得分:2)

正如@toddmo所提到的,要获得主要Task的两个引用以及它的继续,你可能会喜欢这样做:

Task t1 = Task.Run(() => {
    // do something
});
Task t1Continuation = t1.ContinueWith((t) => {
    int x;
});

AFAIK没有方便的方法以单线方式实现这一点。另外,请记住,在ContinueWith lambda中收到的对象是第一个任务,您可以在其中查看resultserrors是否存在任何内容。

答案 1 :(得分:0)

单独声明t1

将第一条腿放在括号中。删除"任务"在开头

将整个事情分配给t2