【发布时间】:2013-05-08 20:46:48
【问题描述】:
我有这个方法:
/// <summary>
/// Gets the query filter.
/// </summary>
/// <param name="queryText">The query text.</param>
/// <returns>The query filter predicate.</returns>
private Task<Predicate<int>> GetQueryFilter(string queryText)
{
// Return the query filter predicate
return new Predicate<int>(async(id) =>
{
// Get the employee
StructuredEmployee employee = await LoadEmployee(id);
// If employee not found - return false
if (employee == null)
return false;
// Else if employee is found
else
// Check subject and body
return (!string.IsNullOrWhiteSpace(employee.FirstName)) && employee.FirstName.Contains(queryText)
|| (!string.IsNullOrWhiteSpace(employee.MiddleName)) && employee.MiddleName.Contains(queryText)
|| (!string.IsNullOrWhiteSpace(employee.LastName)) && employee.LastName.Contains(queryText);
});
}
我希望这个方法异步返回,即Task<Predicate<int>>。
我该怎么做呢?
目前我在async(id) 上有一个编译错误。
【问题讨论】:
-
这只是返回一个谓词-您确定它是要异步运行的
GetQueryFilter方法,而不是谓词本身吗?如果你想要一个异步谓词,那是另一回事。如果你能在这里解释最终目的,那真的很有帮助。
标签: .net c#-4.0 .net-4.5 async-await winrt-async