小编sha*_*y__的帖子

Expression.Variable()和Expression.Parameter()有什么区别?

两者似乎都返回相同的类型,并具有相同的签名.

那么它们之间有什么区别,我们应该何时使用它们?

.net c# expression expression-trees

11
推荐指数
1
解决办法
1790
查看次数

是否可以使用ReSharper作为测试跑步者?

我真的不喜欢ReSharper(让我们不去讨论),但它的测试运行器比VS默认的Test Explorer更好.例如,VS不能很好地处理测试多态(甚至根本不处理),而ReSharper则可以.是否有可能以完全关闭的方式安装和配置ReSharper,除了它的测试运行器?

.net resharper unit-testing visual-studio test-explorer

10
推荐指数
1
解决办法
668
查看次数

每个"等待"运算符都会导致状态机吗?

请考虑以下代码:

public async Task<string> GetString()
{
    //Some code here...
    var data = await A();
    //Some more code...
    return data;
}
private async Task<string> A()
{
    //Some code here..
    var data = await B();
    //manipulating data...
    return data;
}
private async Task<string> B()
{
    //Some code here..
    var data = await C();
    //manipulating data...
    return data;
}
private async Task<string> C()
{
    //Some code here..
    var data = await FetchFromDB();
    //manipulating data...
    return data;
}
private async Task<string> FetchFromDB()
{
    return …
Run Code Online (Sandbox Code Playgroud)

c# asp.net clr async-await

5
推荐指数
3
解决办法
2213
查看次数

如何检查是否存在多个文档

是否有这样的查询获取多个字段,并返回集合中存在哪些字段?例如,如果集合仅包含:

{id : 1}
{id : 2}
Run Code Online (Sandbox Code Playgroud)

我想知道它中[{id : 1} , {id : 3}]存在哪些,然后结果会像[{id : 1}].

mongodb mongodb-query

5
推荐指数
1
解决办法
2604
查看次数

如何将 Task.WhenAll() 用于不同返回类型的多个列表?

我有两组任务,每组都有不同的结果类型:

IEnumerable<Task<T1>> set1 = GetTasksOfT1();
IEnumerable<Task<T2>> set2 = GetTasksOfT2();
Run Code Online (Sandbox Code Playgroud)

现在我想在一行中等待两个集合,但我不得不用演员来投射 set1:

 await Task.WhenAll(set1.Select(p => p as Task).Concat(set2));
Run Code Online (Sandbox Code Playgroud)

那是因为如果我不使用强制转换,我会收到此错误:

IEnumerable<Task<T1>>' does not contain a definition for 'Concat' 
and the best extension method overload 'Queryable.Concat<Task<T2>>(IQueryable<Task<T2>>, IEnumerable<Task<T2>>)' 
requires a receiver of type 'IQueryable<Task<T2>>'
Run Code Online (Sandbox Code Playgroud)

这是显而易见的。

那么有没有办法在不进行强制转换的情况下使用单个 WhenAll()?

编辑:返回类型 T1 和 T2重要 - 我在等待任务后使用它们:

//After await Task.WhenAll(...):
var t1Results = await set1; // all set1 Tasks are completed by now 
var t2Results = await set2; // same
DoSomethingWithResults(t1Results, t2Results);
Run Code Online (Sandbox Code Playgroud)

c# generics task task-parallel-library async-await

5
推荐指数
1
解决办法
3000
查看次数

如何获取docker网络上的所有IP地址?

我有容器在一个覆盖 docker 网络上连接在一起的一组服务(每个服务在不同的 docker 机器上)中运行。

如何从该网络上的容器内部获取与其服务或容器名称相关联的网络上所有使用过的 IP 地址?

谢谢

docker docker-swarm docker-networking

5
推荐指数
2
解决办法
1万
查看次数

HBase Scan基于特定的HFile作为根

是否有任何具有以下行为的扫描/过滤器API?

给定时间范围,我希望扫描仪包含来自HFiles的数据超出范围,包括在HFiles中的行键在范围内.我们的想法是扫描所有HFile的内存索引,但只从磁盘中获取来自HFile的rowkeys的数据.

例如,如果HFile1在范围内并且HFile2超出范围,并且rowkey1有任何数据HFile1,我想获取rowkey1from的所有列HFile2,就好像它在范围内一样.另一方面,如果rowkey2包含HFile2但不包括在内HFile1,索引扫描程序应该跳到下一行键.

用例是在最后X小时内加载已修改的整行(即使只在一列上),从而避免对冗余数据进行全面扫描或任何磁盘扫描.这将集成到Spark/MR应用程序中,可能基于TableSnapshotInputFormat,所以我想我可以为HRegion,HStore或其他任何东西发送一些自定义代码,如果有的话.

非常感谢

java hbase mapreduce hfile

5
推荐指数
1
解决办法
93
查看次数

Json.NET-如何使用内部构造函数序列化外部类?

我需要序列化一个不能更改其源代码的类(将其视为事实),并且它来自不同的程序集。它只有一个构造函数

public class MyObject
{
    string _s;
    int _i;
    internal MyObject(string s, int i)
    {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

JsonConvert.SerializeObject(object)因此当然会失败。我想知道是否有一种方法可以使用Json.NET来序列化此类,而不必向其添加代码甚至标记。

c# oop serialization json.net private-constructor

2
推荐指数
1
解决办法
2617
查看次数

C# - 抛出异常但调用方法已经完成的任务会发生什么?

如果if满足以下语句将会发生什么(以及为什么)并Bar()抛出异常?

    async Task Foo()
    {
        Task<object> myTask = Bar();
        if (condition)
        {
            return;
        }
        else
        {
            await myTask;
            // ....
            return;
        }
    }
Run Code Online (Sandbox Code Playgroud)

异常会被抓住吗?由谁?

.net c# task-parallel-library async-await

2
推荐指数
2
解决办法
688
查看次数

如果 ConfigureAwait(false) 在迭代中,为什么它不能防止死锁?

有人可以解释为什么AsyncMethod2会导致死锁吗?我(认为我)理解顶级 Task inAsyncMethod1不会尝试在由 捕获的上下文中执行它的延续BlockingMethod,因此避免了死锁,但我不明白在 引擎盖下发生了什么AsyncMethod2

private static void BlockingMethod(IEnumerable<Object> data)
{
    AsyncMethod1(data).Wait();  // no deadlock
    AsyncMethod2(data).Wait();  // deadlock
}

private static async Task AsyncMethod1(IEnumerable<Object> data)
{
    await Task.Run(async () =>
    {
        foreach (var obj in data)
        {
            await AsyncMethod2.(obj);
        }
    }).ConfigureAwait(false);
}

private static async Task AsyncMethod2(IEnumerable<Object> data)
{
    await Task.Run(async () =>
    {
        foreach (var obj in data)
        {
            await AsyncMethod2.(obj).ConfigureAwait(false);
        }
    });
} 
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net task async-await

-1
推荐指数
1
解决办法
673
查看次数