相关疑难解决方法(0)

如何编写异步LINQ查询?

在我读了一堆LINQ相关的东西之后,我突然意识到没有文章介绍如何编写异步LINQ查询.

假设我们使用LINQ to SQL,下面的语句很清楚.但是,如果SQL数据库响应缓慢,则使用此代码块的线程将受到阻碍.

var result = from item in Products where item.Price > 3 select item.Name;
foreach (var name in result)
{
    Console.WriteLine(name);
}
Run Code Online (Sandbox Code Playgroud)

似乎当前的LINQ查询规范不提供对此的支持.

有没有办法做LINQ异步编程?当结果准备好使用而没有I/O上的任何阻塞延迟时,它就像有一个回调通知.

c# linq asynchronous linq-to-sql

59
推荐指数
3
解决办法
4万
查看次数

C#4.0"动态"关键字是否会使泛型多余?

我对C#中的动态特性感到非常兴奋(C#4动态关键字 - 为什么不呢?),特别是因为在我的代码的某些库部分我使用了很多反射.

我的问题是双重的:

1."动态"取代泛型,如下面的情况?

泛型方法:

public static void Do_Something_If_Object_Not_Null<SomeType>(SomeType ObjToTest) {

        //test object is not null, regardless of its Type
        if (!EqualityComparer<SomeType>.Default.Equals(ObjToTest, default(SomeType))) {
            //do something
        }
    }
Run Code Online (Sandbox Code Playgroud)

动态方法(??):

public static void Do_Something_If_Object_Not_Null(dynamic ObjToTest) {

        //test object is not null, regardless of its Type?? but how?
        if (ObjToTest != null) {
            //do something
        }
    }
Run Code Online (Sandbox Code Playgroud)

2."动态"现在是否允许方法返回匿名类型,如下面的情况?:

 public static List<dynamic> ReturnAnonymousType() {
        return MyDataContext.SomeEntities.Entity.Select(e => e.Property1, e.Property2).ToList();
    }
Run Code Online (Sandbox Code Playgroud)

很酷,欢呼

编辑:

仔细考虑了我的问题,并根据答案,我看到我完全搞砸了主要的通用/动态问题.他们的确完全不同.所以是的,感谢所有的信息.

那么第2点怎么样?

.net c# generics reflection dynamic

9
推荐指数
4
解决办法
7111
查看次数

标签 统计

c# ×2

.net ×1

asynchronous ×1

dynamic ×1

generics ×1

linq ×1

linq-to-sql ×1

reflection ×1