我試圖從我的任務中獲取返回數據,它工作正常,如果我使用單個變量,但是當我使用數組或列表時,我看不到任務對象的可用屬性方法中RESULT的接口。C#線程任務 - 無法從任務數組獲取返回值
var task = Task<BookingListResponse>
.Factory.StartNew(() => GetServicesFromApi(sc),
TaskCreationOptions.LongRunning);
tasks.Add(task);
try
{
// Wait for all the tasks to finish.
Task.WaitAll(tasks.ToArray());
}
,你可以從代碼中看到,如果我把任務返回到一個數組和類型的任務[1]。結果,它不公開「結果」,如果我訪問的任務的話,我可以得到它。
我相信我做的事很傻,所以任何幫助都會很好。
歡呼聲。
Paul。
這裏是全碼:
List<Task> tasks = new List<Task>();
// loop schemes and only call DISTINCT transit api URL's
foreach (Scheme scheme in schemes)
{
if (url.ContainsKey(scheme.Url))
continue;
url.Add(scheme.Url, 0); // add url.
var sc = new ServiceCriteria();
sc.Url = scheme.Url;
sc.CapacityRequirement = capacityRequirement;
sc.DropOffLocation = dropOffLocation;
sc.PickUpLocation = pickUpLocation;
sc.PickUp = pickup;
sc.TravelTime = travelTime;
// Fire off thread for each method call.
//tasks.Add(Task<BookingListResponse>.Factory.StartNew(apiAttributes =>
// GetServicesFromApi(sc), TaskCreationOptions.LongRunning));
var task = Task<BookingListResponse>
.Factory.StartNew(() => GetServicesFromApi(sc),
TaskCreationOptions.LongRunning);
tasks.Add(task);
}
try
{
// Wait for all the tasks to finish.
Task.WaitAll(tasks.ToArray());
var result = tasks[0].Result;
}
結果選項不顯示。
歡呼聲。
我們可以」你真的看不到,你沒有粘貼所有相關的代碼。 1)缺少「任務」聲明。 2)你嘗試閱讀的結果也是缺失的。 – 2010-12-06 13:22:46
`tasks`的定義在哪裏?你是否結束了一個`Task`而不是`Task`數組? –
2010-12-06 13:24:13