【发布时间】:2019-01-17 13:21:09
【问题描述】:
我了解 async 和 await 的使用,当我看到任何使用方法时都可以轻松理解,但我自己无法做到。
public static Expression<Func<T, bool>> GetExpression<T>(Field filter)
{
ParameterExpression param = Expression.Parameter(typeof(T), "t");
Expression exp = null;
if (filter != null)
{
exp = GetExpression<T>(param, filter);
}
return Expression.Lambda<Func<T, bool>>(exp, param);
}
private static Expression GetExpression<T>(ParameterExpression param,Field filter)
{
var stringMember = Expression.Call(asString, Expression.Convert(member, typeof(object)));
ConstantExpression constant = Expression.Constant(filter.TextToBeFiltered.ToString().ToLower());
switch (filter.Operation)
{
case FilterEnum.Equals:
return Expression.Equal(stringMember, constant);
case FilterEnum.DoesNotEqual:
return Expression.NotEqual(stringMember, constant);
}
return null;
}
如何使用 async 和 await 使这些方法异步?
【问题讨论】:
-
为什么?大部分工作都是cpu绑定的,你不会得到任何东西。
-
我在 wpf 应用程序中使用它,所有其他方法都是异步的。所以也需要这样做。
-
@summ - 不,你没有。
-
你的意思是,你想在后台线程上运行它?
-
是的可能是..我从其他地方调用这个方法
标签: c# .net async-await