小编Chr*_*Wue的帖子

如何从另一个线程中止单元测试?

我有基本运行2个线程的单元测试示例代码:主测试线程和我正在启动的另一个线程,应该在一段时间后导致测试执行失败(这基本上是一个超时线程)

代码如下:

[TestClass]
public class SomeTestClass
{
    [TestInitialize]
    public void BeforeTest()
    {
        var task = new Task(abortIfTestStilRunsAfterTimeout);
        task.Start();
    }

    [TestMethod]
    public void TestMethod()
    {
        Thread.Sleep(5000);
    }

    private void abortIfTestStilRunsAfterTimeout()
    {
        Assert.Fail("timeout passed!");

    }
}
Run Code Online (Sandbox Code Playgroud)

好吧,我原以为TestMethod()测试应该失败,但是实际上发生的是,运行该Assert.Fail方法的任务线程发生异常,而另一个线程继续运行并且测试通过。

我正在寻找一种无法通过测试方法的方法

c# multithreading unit-testing visual-studio-2010

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

我如何在线程之间进行通信

如何在C++中创建线程并在主线程和另一个线程之间进行通信?

一些代码示例将不胜感激.

c++ multithreading

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

防止在测量阶段调用 ApplyTemplate()

我目前正在为我正在处理的应用程序创建一个虚拟化的 TreeView 控件。我当前的实现依赖于优化的测量算法,这给了我一些问题。现在,在我详细介绍这里之前,请注意我使用的是 .NET 4.0 版。

我为优化内部TreeView控件的测量所做的工作是最小化在MeasureOverride()函数中所做的工作。我已经把它归结为最基本的东西,我现在剩下的是一个深入 WPF 内部的昂贵调用。基本上,在控件上调用Measure() 会在子控件上应用所有模板,这非常昂贵。由于我的 TreeViewItems 都将具有定义的高度,因此在测量阶段我并不真正需要模板。有人知道绕过ApplyTemplates()调用的方法吗?

这是一个示例调用堆栈

  • MyCustomControl.MeasureOverride(...)
    • ...
      • UIElement.Measure(...)
        • FrameworkElement.MeasureCore(...)
          • FrameworkElement.ApplyTemplate(...) <-- 贵!

c# windows wpf .net-4.0

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

缓存未命中的循环平铺优化openmp

我想知道是否有人可以帮助我循环平铺优化,以最大限度地减少缓存未命中.我正在研究四个4000x4000浮点矩阵乘法.

该机器具有三级缓存,其值为:L1 128kb,L2 1Mb和L3 8Mb

有四个嵌套循环,并没有完美嵌套.

for(int i=0; i<NN; i++) {
    for (int j=0; j<NN; j++) {
        if (i != j){
            thirdlayer = 0;
            for (int k=0; k<NN; k++) {
                fourthlayer = 0;
                for (int l=0; l<NN; l++) {
                    fourthlayer =  fourthlayer + V[j*NN+l]*V[NN+l]*J[k*NN+l];
                }
                thirdlayer = thirdlayer + V[k]*V[i*NN+k]*fourthlayer;
            }
            if(pi_cod[j] != 0)
                Transitions[i*NN +j] =  sqrt(pi_cod[i]*pi_cod[1]/(pi_cod[0]*pi_cod[j]))*Q[i*NN +j]*thirdlayer/Padt;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ optimization caching loops tiling

5
推荐指数
0
解决办法
991
查看次数

当您使用相同的方法实现两个接口时,您如何知道调用哪个接口?

如果你有TheMethod()接口I1和I2,以及下面的类

class TheClass : I1, I2
{
    void TheMethod()
}
Run Code Online (Sandbox Code Playgroud)

如果有什么实例化TheClass,它如何知道它正在使用哪个接口?

c# interface

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

RabbitMQ和C#

使用RabbitMQ有一种方法可以使用它类似于MSSMQ,其中一个可以从队列中弹出1000条消息,然后插入数据库并从那里继续.

我似乎无法通过Subscription对一个频道进行预测,然后对Subscription中的BasicDeliveryEventArgs进行预测,并使用我想要在给定时间处理的最大消息数进行If语句.

提前谢谢这仍然从队列中获取所有22k消息

using (IConnection connection = factory.CreateConnection())
{
    using (IModel channel = connection.CreateModel())
    {
        channel.QueueDeclare("****", true, false, false, null);

        var subscription = new Subscription(channel, "****", false);
        int maxMessages = 5;
        int i = 0;
        foreach (BasicDeliverEventArgs eventArgs in subscription)
        {
            if (++i == maxMessages)
            {
                Console.WriteLine("Took 5 messages");
                subscription.Ack(eventArgs);
                break;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# rabbitmq

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

在不超出内存限制的情况下调整php中​​的多个图像

我目前正在尝试获取一个表单,允许使用PHP在服务器上上传和调整大小的图像.客户端上传的每张图片大小约为2.5mb.

我目前正在使用该move_uploaded_file()功能.

将文件移动到服务器上没有问题.当我尝试裁剪时出现问题.在我的主机上没有ImageMagick我正在使用这个设置(不是所有的代码只是相关的,这是在循环中$width等等改变不同的裁剪尺寸)

$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagejpeg($image_p, $output_filename, 80);
Run Code Online (Sandbox Code Playgroud)

目前,这只适用于2张图片.如果提交了3个或更多,我会收到"内存耗尽"错误.我研究了这个,因为我的内存限制是120mb.显然,该imagecreatefromjpeg函数使用了大量内存,特别是如果文件具有较大的分辨率(我的确如此 - 因此我需要裁剪/调整大小).

有谁知道更有效的方法来完成这项任务?我在google上进行了研究,但每个人都使用相同的技术.

php image-resizing memory-limit

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

SQL查找和引用表定义

我需要一些澄清.什么是查找表以及SQL中的参考表是什么?

我的印象是查找表是一个表格,其中包含几乎不会发生变化的静态数据(例如,一个表格中包含所有50个状态及其大写字母),而参考表格是包含主键并链接另外两个表格的表格.在下面的示例中,表B将是参考表.有人能告诉我表B的名称是什么吗?

Table A
CustomerID
CustomerName
CustomerAddress

Table B
CustomerID
OrderID

Table C
OrderID
OrderDate
Run Code Online (Sandbox Code Playgroud)

sql definitions semantics

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

使用Excel sumifs求和矩阵元素

是否可以使用Excel的sumifs使用行和列上的条件查找矩阵元素的总和?例如矩阵:

    c   d   e
a   1   2   3
b   4   5   6
Run Code Online (Sandbox Code Playgroud)

我想总结b行,d和e列的元素.该解决方案也适用于大尺寸矩阵.抱歉丑陋的格式化.

excel sumifs

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

声明二维数组的问题

我有以下代码:

    public int[] _SpDep = new int[50];
    public int[][] _SpDepCnt = new int[50][];
    public int[][] _SpReadType = new int[50][];

     _DepNo = Convert.ToInt16(strFileName[n].Substring(1, 2));
     _CntNo = Convert.ToInt16(strFileName[n].Substring(6, 2));
     _SpDep[_DepNo] = 1;
     _SpDepCnt[_DepNo][_CntNo] = 1;
     _SpReadType[_DepNo][_CntNo] = 1;
Run Code Online (Sandbox Code Playgroud)

到达此行时出错:

      _SpDepCnt[_DepNo][_CntNo] = 1;
Run Code Online (Sandbox Code Playgroud)

但我不知道出了什么问题?任何意见?这是2d array错误的声明吗?

c# jagged-arrays multidimensional-array

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