小编Pab*_*blo的帖子

我可以模拟无法实例化的对象吗?

我在我的C#中使用了一些COM库,它绑定到特定的硬件,没有它就无法工作.在开发/测试计算机上,我没有那个硬件.使用库的方法如下所示:

using HWSysManagerLib;
bool ProcessBias(HWSysManager systemManager, string hwPath)
{
    int handle = systemManager.OpenConfiguration(hwPath);
    ...
    // some magic goes here
    // return result
}
Run Code Online (Sandbox Code Playgroud)

问题是,我可以模拟HWSysManager测试方法以及如何?只有很少的方法HWSysManager,模拟它们的测试功能不会有问题.如果可能的话,一个很小的例子就是如何嘲笑它.

c# nunit unit-testing mocking

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

async/await和Parallel.For循环

我以两种不同的方式运行Parallel.For循环:

  1. 不写任何async/await但只是调用Task ReadSensorAsync(int):

    var watch = System.Diagnostics.Stopwatch.StartNew();
    Parallel.For(3, 38,
    index => {
        ReadSensorsAsync(index);
    });
    watch.Stop();
    Console.WriteLine("Parallel finished in {0} ms", watch.ElapsedMilliseconds);
    
    Run Code Online (Sandbox Code Playgroud)

    时间显示 1ms

  2. 跑步 async/await

    var watch = System.Diagnostics.Stopwatch.StartNew();
    Parallel.For(3, 38,
    async index => {
        await ReadSensorsAsync(index);
    });
    watch.Stop();
    Console.WriteLine("Parallel finished in {0} ms", watch.ElapsedMilliseconds);
    
    Run Code Online (Sandbox Code Playgroud)

    这表明2-5ms.

问题是为什么存在这种差异以及使用哪种方式.

c# asynchronous winforms task-parallel-library

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

用于配置php代码的工具

寻找一些[免费软件/开源]工具,以便在win32平台上轻松分析一个大的PHP项目.需要找出最耗时的代码部分.循环时,很难手动为每个功能设置定时功能......

php profiler

0
推荐指数
1
解决办法
1569
查看次数

在Objective-C中交换指针的函数

- (void) swapController:(MyViewController*)controller1 
                         with:(MyViewController*)controller2
{
    MyViewController *swap = controller2;
    controller2 = controller1;
    controller1 = swap;
}
Run Code Online (Sandbox Code Playgroud)

看起来这不起作用,因为我没有传递引用.怎么办呢?

objective-c

0
推荐指数
1
解决办法
3158
查看次数

如何枚举对象?

我试图枚举实际上可枚举的Object,但类型存储在Type变量中

public Type MyListType { get; set; }
public Object MyList { get; set; }
...
foreach (var item in Convert.ChangeType(MyList, MyListType))
{
...
}
Run Code Online (Sandbox Code Playgroud)

这显然会产生错误,因为ChangeType仍然返回Object.如何将MyList转换为可枚举类型,尤其是MyListType?

更新:

更清楚的是,Object是BindingList<T>type,其中T驻留在MyListType中.

c#

0
推荐指数
1
解决办法
95
查看次数

为什么逻辑评估不会因为"假"结果而停止?

testExceptions 是字典.

var testConfigurations = cells.SelectMany(x => x.TestConfigurations).Where(
   y => y.ID == testId && 
   !testExceptions[index].ContainsKey(y.Cell) && 
   !testExceptions[index][y.Cell].Contains(y.ID)
).ToList();
Run Code Online (Sandbox Code Playgroud)

!testExceptions[index][y.Cell].Contains(y.ID)testExceptions不包含密钥时给我一个例外y.Cell.但是因为我正在检查,ContainsKey我预计它不会评估最后的情况.有没有办法避免异常而不使用长if/else语句?

c# logical-operators

0
推荐指数
1
解决办法
45
查看次数