我使用以下代码使用任务
在更新UI中调用Web服务//------- REFRESH BOOK LIST ------
public Task<string> GetBookList()
{
return Task.Factory.StartNew(() => {
// GET BOOK LIST
WebServiceController webServices = new WebServiceController ();
string bookList = webServices.GetBookList ();
if (bookList.Contains("BooksList")) {
// PARSE
ParseListData parseData = new ParseListData ();
parseData.ParseList (bookList);
}
return bookList;
});
}
我使用
调用此代码GetBookList ().ContinueWith (task => {
if (task.IsFaulted) {
// STOP ACTIVITY INDICATOR
RemoveActivityIndicator (true);
throw new AggregateException (task.Exception.InnerException.Message);
}
// RUNS WHEN TASK IS FINISHED
InvokeOnMainThread (() => {
// STOP ACTIVITY INDICATOR
RemoveActivityIndicator (true);
string bookList = task.Result;
if (bookList.Contains("Error:") || !bookList.Contains("BooksList"))
{
// SHOW ERROR MESSAGE
}
});
});
如果返回字符串(bookList)中有错误,那么我想检查bookList.Contains(“Error:”),如上所示并显示错误消息。问题在于bookList字符串是在Task GetBookList()函数中分配的。如何在GetBookList().ContinueWith中获取该值以显示错误。
如何在上面的情况下编写一个Task来返回一个字符串。
答案 0 :(得分:0)
使用Task<string>
,然后可以使用Task的Result属性存储String值。