如何访问Task中的类方法?

时间:2018-10-29 17:16:49

标签: c# task

假设我有一个名为//app.js window.Vue = require('vue'); Vue.component("question", require("./components/Question.vue").default); new Vue({ el:"#app", data:{ parent:'parent data' } });的类,它具有以下设计:

Foo

我想创建一个包含不同public class Foo { public async Task StartAsync() { await some method.. } } 的数组,所以我声明了以下数组:

Task<Foo>

然后我通过以下方式分配了用于创建Task<Foo>[] tasks = new Task<Foo>[10]; 的数组索引:

Task<Foo>

现在,我想访问 tasks[1] = new Task<Foo>(); 方法,但是当我写以下内容时:

StartAsync()

我只有tasks[1]. 方法,这是启动任务的默认方法。我该如何访问Start()类方法?

2 个答案:

答案 0 :(得分:1)

我认为您需要Foo而不是Task<Foo>的数组

Foo[] foos = new Foo[10];

然后您可以执行以下操作:

foos[1] = new Foo();
await foos[1].StartAsync();

答案 1 :(得分:-1)

您的task [1]对象实际上是非Foo的一种Task,要访问Foo,您需要等待它或使用Task的result属性。

var foo = await tasks[1];
foo.StartAsync()

//Or

tasks[1].Result.StartAsync() //be careful with deadlock when you using Result.