小编Lu4*_*Lu4的帖子

客户端断开连接后在.NET 4中重用NamedPipeServerStream时BeginWaitForConnection抛出的异常

我正在尝试使用NamedPipeServerStream.Net 4中创建命名管道服务器.我正在BeginWaitForConnection等待连接,以便我可以在服务器关闭时中止等待.

一切都适用于第一个客户端---确认连接,收到数据,发送响应正常.但是,在客户端断开连接后,一切都会中断.我BeginWaitForConnection再次呼吁等待一个新的连接,但这是一个IOException说"管道坏了" 的说法.

我怎样才能在同一个管道上等待第二个客户端?

.net named-pipes

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

将蒙娜丽莎呈现给PBO

阅读完这篇文章之后,我想尝试做同样的事情,但为了加速我想在GPU上执行的渲染部分,不用说为什么三角形或任何其他几何对象应该在GPU上渲染而不是中央处理器.

这是一个很好的过程形象:

蒙娜丽莎

任务:

  1. 渲染'顶点集'
  2. 估计渲染的'顶点集'和蒙娜丽莎图像之间的逐像素差异(蒙娜丽莎位于GPU上的纹理或PBO没有太大区别)

问题:

使用OpenCL或Cuda与OpenGL FBO(帧缓冲对象)扩展时.

在这种情况下根据我们的任务

  1. 渲染'顶点集'(由OpenGL处理)
  2. 估计渲染的"顶点集"和蒙娜丽莎图像(由OpenCL或Cuda处理)之间的逐像素差异

因此,在这种情况下,我不得不从FBO到PBO(像素缓冲区对象)进行复制,以获得OpenCL/Cuda的渲染"顶点集".我知道设备到设备内存的复制速度有多快,但根据我需要完成数千个这样的副本的事实,不这样做是有意义的......

这个问题有三个选择:

  1. 使用OpenGL渲染到PBO(不知何故,我不知道如何,也可能无法这样做)
  2. 使用OpenGL渲染图像并估计图像之间的差异(不知何故,我不知道如何使用着色器,唯一的问题是我从未在生活中编写着色器,这可能需要数月的工作时间我...)
  3. 使用OpenCL/Cuda渲染图像并估计图像之间的差异(我知道如何做到这一点,但是在OpenCL或Cuda中实现渲染器的稳定性和或多或少优化版本需要几个月)

这个问题

任何人都可以帮我编写一个着色器用于上述过程,或者可能指出将蒙娜丽莎渲染到PBO而没有来自FBO的副本的方式......

opengl cuda gpgpu opencl

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

EntityState.Deleted不起作用,Remove(entity)呢?

在尝试读取记录时,我一直在与EF斗争,然后在同一个事务中删除这些记录.我最初使用的是EntityState.Deleted方法,它会产生错误:

操作失败:无法更改关系,因为一个或多个外键属性不可为空.当对关系进行更改时,相关的外键属性将设置为空值.如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象.

但是,如果我将它改为我在下面,使用.Remove(),那么一切都很好.

  1. 有什么区别和最佳使用时间.Remove()vs .Deleted?
  2. 我怎么能使用.Deleted方法来完成这项工作?我已经尝试创建一个新的上下文实例到我的存储库读取和另一个删除,但后来得到的错误与IEntityTracker无法跟踪多个实例...我也试过.Include在初始读取时加载依赖记录进入EF所以它知道并删除它们.我也尝试过.先读取读取的记录.一切都无济于事.

这是有问题的方法.请注意,我确实有一个使用.Deleted方法的通用存储库,该方法在此方案之前一直很好用(读取然后删除相同的记录.)

//Delete Allocation Need and AllocatedContainers for alloc need id
public ActionConfirmation<int> DeleteAllocRecords(int intFacilityId, AllocNeedSourceTypes needSourceType, int intNeedSourceId)
{
var context = new InventoryMgmtContext();
var repository = new AllocationNeedRepository(context);

//Delete Allocation Need and hence children in Allocated Containers
var srcType = needSourceType.ToString();
List<AllocationNeed> allocNeeds = repository.SearchFor(
    x => x.FacilityId == intFacilityId
    && x.NeedSourceType == srcType
    && x.NeedSourceId == intNeedSourceId
).ToList();

//var deleteRepository = new Repository<AllocationNeed>(); <--tried separate instance of context to delete...no worky.

foreach …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework exception-handling entity-framework-5

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

openssl生成的私钥不满足n = p*q

我使用以下命令使用openssl生成了一个密钥

openssl genrsa 1024
Run Code Online (Sandbox Code Playgroud)

我得到了以下结果

-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC2Lh4HLcCR76Wv3oXl6sZ7pv8l9b/66H+I6Bb86tz8RhWCmTCG
xPVgtZ+w9WutU/rqBHHZOpotX4QDksRD8dRFh6a3HwkIFQdTcDoiD39yNP8F02Gd
dAl8p/URC5jNCLMSfUK38wMocmoI1I5vqdMNrzUnOup18rl4089Z+faMKQIDAQAB
AoGBAJrL4z5iWiengxqV8yETBeU8WcJft+n0dapXzHDNAUo8Izr+AIYEBp1Ot4se
f4igu6zuae80JJ45c2u14p/5dWzN9/URmhTP8xLGjGCjltOJLLyhBPP+ZsLjqu6l
57MNV6jDqDLdRC66w4NMRCN3FACxcldIC5L6B9OA7UvO1ugBAkEA8s1o6BvufTeD
ktyOMfW0ZeLGk/6EXp8nf7BIzYhAAPtSt8DegnfYFx2XDgKnYSB15dTDIDMe/KaA
GcuUb/ZjiQJBAMATb1fFdl7PGccVPgeTaupJayHPySc9PSsACV6VIAnpcU/3NZzd
MkdIL/JsOsD+1M9uQJqvRZO4qQdjcR5Om6ECQEJGgYlB/pJdcePHomTOvcRF55CE
G9u8M8rt8qFvvJDICWcxFUulrO16XT4syUWA1825it2iNqYeSL9By63YIokCQBnm
RPw71xM/r8UleyDAYwlGbxi3EPOmkUnsDldfmltby/ixZ9xIA1CTTkvNBjsh4YY6
4qE5AxPBMaGaahVhGiECQHyQvXUNE2IUco+ZwmmLnb2ey1s5tBg7i0lEZG47G7GV
o+yKdJHpToJD8eRJA/2D+pMhQIZm8X/XDIoi1AQ/TRY=
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

通过使用http://lapo.it/asn1js/我已经在上面反编译pem并发现了这一点

p = 12716592588957205057720227362856602359162165918588008158928004904780617816265357754968000322907349867949577092305558696339499022301055839537975977118688137

q = 10059832080410675679274931119486090017360564066559599189867309386706046720813347145402059918876964980032136051476889631968099168811652389989474036177869729
Run Code Online (Sandbox Code Playgroud)

但在平均时间模数

n = 127931248913253271289716500205639992466284651287857358177145251825312810367993147780821624164062592337708505486275588028025122128928225266601591073331803580493341719724935049328478344297205955905466581637169109448199715137939448946445804542355907923908845024638480376219852266194827768486624319018352514599977
Run Code Online (Sandbox Code Playgroud)

当它应该相等时:

N = 127926786079904340486324750015310657558743663036816604629670248604945247855865212421871439992814824964459404054462886419168595224468110358113599485755243718536935880977456835036272916419632947427885989469252242704342884476060911074859116149906854382812141105735147419775039435625802885168567201322191763704873
Run Code Online (Sandbox Code Playgroud)

为什么地狱N不等于p * q


编辑:

这是我的openssl生成的一堆密钥,我使用的是Mac OS X Mavericks,第一个密钥有正确的N,第二个密钥不正确,我没有检查过其他密码,但无论如何这个问题似乎都在复制,我' m使用以下openssl版本"OpenSSL 0.9.8y 2013年2月5日":

-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDb4ZTDCASpFV+89RzD8MYR/xASV/piyXB3+qVq+PueDqq+45EL
Xt5UE2jXanfOh3uE3G3Fi76rm08XUC0CvFB7DxFJAMvchr5LbE9x2EMDmfpuZPOI
bDI+r+XZ+KJF++h296TOnncgnXILoD1gihkld7MS9g49TwsBPOtsMJzDRQIDAQAB
AoGBAMpGFfTormjhacZJcqHqIDwz+RP27TbtetJUuNHUpJw9f+PFMwxTxJFxnZP1
tKtAxWdu5GjDaq8xW6vlrNKEbD9jg2WU/myYffNeHxNVjivzypeQzBSmcE5LKFpM
objHkvXbBkkyX8Oh6ZF/3+NOhxOVZMH7CaZ90a+xPf7ENXJBAkEA+Zx/rwrx81+D
s79thCAUU4EnMVROGFPr/V7mt9AFXjAXHRuvg49Aon23bt48jdroakV5vk0ltKO8
Z5xnRWlGNQJBAOGCSOL+zFJd6zTM+CkbgGtml+DIunr7Avfu2mZyaMv4mLo+GTRN
ctZEKhknYfydewhORLKg51WdLThoe9VG6tECQCUyIvzMnr1rkE6qygEUXrMK3fJF
49VQPCxnhe4CO6qLdAZMZ90s7a7JGRqWV2O0KUoczEWFbYb7l0nBTspTI7kCQGmT
L0BmfY3KPoWXuE62e2bMvyoTj4pn3bnpbwIrafikSAxZaj9cSvkZLIReNbeomqMG
0Y63WdZxIWyZLfBppSECQQCEIkbINrQPJHoLtD57AbptUeyaE5lQBurzXMVf84FA
OJjd5OKmEX+LYbLguzOjvkcysNEZBRphz4L07shvscBC
-----END RSA PRIVATE …
Run Code Online (Sandbox Code Playgroud)

openssl cryptography rsa

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

简化Z = X ^(X &lt;&lt; Y)函数的逆函数

我很难将以下函数简化为几个原子的二进制操作,感觉有可能,但是我做不到,已经花了好几个小时了:

public UInt32 reverse_xor_lshift(UInt32 y, Int32 shift)
{
    var x = y & (UInt32)((1 << shift) - 1);

    for (int i = 0; i < (32 - shift); i++) {
        var bit = ((x & (1 << i)) >> i) ^ ((y & (1 << (shift + i))) >> (shift + i));

        x |= (UInt32)(bit << (shift + i));
    }

    return x;
}
Run Code Online (Sandbox Code Playgroud)

函数的作用只是计算的逆,Z = X ^ (X << Y)换句话说reverse_xor_lshift(Z, Y) == X

algorithm binary

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

打字稿严格别名检查

有没有办法强制执行打字稿,甚至更严格的类型检查到别名检查?

我想要实现的是定义类型,例如:

type kilograms = number;
type kilometers = number;
type kilogramsPerKilometer = number;
Run Code Online (Sandbox Code Playgroud)

并且确保我不会将错误的类型值放入变量中,例如:

let x: kilograms = 123;
let y: kilometers = 256;
let z: kilogramsPerKilometer = x / y; // Will popup an error here saying that types are incompatible
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它需要显式类型转换:

let x: kilograms = 123;
let y: kilometers = 256;
let z: kilogramsPerKilometer = <number>x / <number>y; // Will downcast `kilograms` and `kilometers` types to `number` and then up-cast types to `kilogramsPerKilometer`
Run Code Online (Sandbox Code Playgroud)

typescript typescript2.0

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

tsconfig.json中的Typeroots选项无法识别自定义类型

我有一个打字脚本项目设置为./node_modules/types,这是我的tsconfig:

{
    "compilerOptions": {
        "baseUrl": ".",
        "noImplicitReturns": true,
        "declaration": false,
        "noImplicitAny": true,
        "strictNullChecks": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "suppressImplicitAnyIndexErrors": false,
        "lib": [
            "es6",
            "dom"
        ],
        "mapRoot": "./",
        "module": "commonjs",
        "moduleResolution": "node",
        "sourceMap": true,
        "target": "es5",
        "typeRoots": [
            "./node_modules/@types",
            "./types"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我将其中一个文件夹从./node_modules/@types移动到./types,相应的类型不会被打字稿选中,那么这个问题的原因是什么?

先感谢您!

typescript typescript2.0

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

C#的SortedBag <T>

我正在为C#寻找一个SortedBag实现,我的用例如下:我有一系列的对象正在使用自定义IComparer实现进行估计和整理,问题是完全不同的对象可能产生相同的估计,当我尝试使用C#的默认排序集合(如SortedSet,SortedDictionary实现)时,我无法使用相同的估计向这些集合插入多个对象,因为集合认为这些对象相等并拒绝插入它们.我需要一个具有O(log(N))的SortedBag实现,用于插入和删除,因为我正在非常积极地进行插入/删除.

有没有人偶然发现这样的实施?

谢谢!

编辑

似乎我在寻找Priority Queue而不是SortedBag ...

c# collections generic-collections

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

寻找George Marsaglia的XorShift RNG的逆操作

抽象

嗨,假设你有128位自动机(由4个32位字表示X,Y,Z,W那根据以下规则改变它的状态):

X = ...
Y = ...
Z = ...
W = ...

void next()
{
    var t = X ^ (X << 11);

    X = Y;
    Y = Z;
    Z = W;

    W = W ^ (W >> 19) ^ (t ^ (t >> 8));
}
Run Code Online (Sandbox Code Playgroud)

^- 表示二进制XOR运算

<< - 表示二进制左移操作

>> - denotys二元右移操作

保证上述自动机不产生冲突,即每个状态是一个(且仅一个)先前状态的结果.还保证上述状态机产生2 ^ 128个唯一状态.

对于任何给定的状态(X,Y,Z,W)产生逆next,(即prev)将状态恢复到前一状态的操作.

换句话说,如果你有以下状态(X=1, …

algorithm

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

C++中的奇怪引用行为

我的问题很简短:

vector<int> ints{1,2,3,4};

int &y = ints[0];

// ints.push_back(y);

y = 5;

for (auto &x : ints) {
    cout << x << ", ";
}
Run Code Online (Sandbox Code Playgroud)

为什么虽然评论你得到5, 2, 3, 4,但当你取消评论时,ints.push_back(y);你得到1, 2, 3, 4, 1.我会再写一遍,以便对问题非常清楚:你得到了[-->1<--], 2, 3, 4, 1,而不是5, 2, 3, 4, 1甚至是5, 2, 3, 4, 5

这种行为让我疯狂......引擎盖下发生了什么?

c++

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