Tag: C#的

为什么在.NET Reactive Extensions中不推荐使用主题?

我目前正在掌握.NET的Reactive Extensions框架,我正在通过我find的各种介绍资源(主要是http://www.introtorx.com ) 我们的应用程序涉及许多检测networking帧的硬件接口,这些接口将是我的IObservables,然后我将拥有各种组件,这些组件将消耗这些帧或对数据执行某种方式的转换,并生成新的帧types。 例如,还会有其他组件需要显示每个第n帧。 我确信Rx对于我们的应用程序来说是非常有用的,但是我正在努力处理IObserver接口的实现细节。 大部分(如果不是全部)我一直在阅读的资源都说我不应该自己实现IObservable接口,而是使用提供的函数或类之一。 从我的研究看来,创build一个Subject<IBaseFrame>将为我提供我所需的,我将有我的单线程从硬件接口读取数据,然后调用我的Subject<IBaseFrame>实例的OnNext函数。 不同的IObserver组件将从该主题接收通知。 我的困惑来自于本教程附录中给出的build议: 避免使用主题types。 Rx实际上是一个函数式编程范例。 使用科目意味着我们现在正在pipe理状态,这可能会发生变化。 同时处理变异状态和asynchronous编程是非常困难的。 此外,许多运营商(扩展方法)都经过精心编写,以确保订阅和序列的正确和一致的使用期限得以维持; 当你介绍科目时,你可以打破这个。 如果明确使用主题,未来版本也可能会出现明显的性能下降。 我的应用程序是相当性能的关键,我很明显要testing使用Rx模式的性能之前,它进入生产代码; 但是我担心我正在使用Subject类来做一些违背Rx框架的精神,而且未来版本的框架将会损害性能。 有没有更好的方式做我想要的? 无论是否有观察者,硬件轮询线程都将持续运行(否则硬件缓冲区将会备份),所以这是一个非常热门的程序。 我需要将接收到的帧传给多个观察者。 任何build议将不胜感激。

为什么一个无名的命名空间是静态的“优越”select?

C ++标准中的$ 7.3.1.1 / 2节读取: 在名称空间范围内声明对象时,不推荐使用static关键字; 无名命名空间提供了一个优越的select。 我不明白为什么一个无名的命名空间被认为是一个优越的select? 基本原理是什么? 我已经知道标准所说的很长一段时间了,但是我从来没有认真考虑过这个问题,即使我回答了这个问题: 无名的命名空间比静态的优越性? 它被认为是优越的,因为它也可以应用于用户定义的types,正如我在我的答案中所述 ? 或者还有其他一些原因,我不知道? 我在问这个问题,特别是因为这是我的答案,而标准可能还有别的想法。

如何从C程序中获得100%的CPU使用率

这是一个非常有趣的问题,所以让我来设置一下这个场景。 我在国家计算机博物馆工作,从1992年开始,我们就成功地获得了一台Cray Y-MP EL超级计算机,我们真的想看看它有多快! 我们决定做这件事的最好方法是编写一个简单的C程序来计算素数,并显示这个过程需要多长时间,然后在一台快速的现代桌面PC上运行程序并比较结果。 我们很快提出了这个代码来计算素数: #include <stdio.h> #include <time.h> void main() { clock_t start, end; double runTime; start = clock(); int i, num = 1, primes = 0; while (num <= 1000) { i = 2; while (i <= num) { if(num % i == 0) break; i++; } if (i == num) primes++; […]

C#中的高性能TCP服务器

我是一个经验丰富的C#开发人员,但到目前为止我还没有开发TCP服务器应用程序。 现在我必须开发一个高度可扩展和高性能的服务器,可以处理至less5-10个并发连接:从GPS设备通过GPRS获取字节数据。 一个共同的沟通过程应该是这样的: GPS设备启动到我的服务器的连接 我的服务器应答,如果我想获得数据 设备发送GPS数据 我的服务器向设备发送报告(比如校验和) 从GPS获取新的数据,报告和这一再发生 稍后GPS DEVICEclosures连接 所以,在我的服务器,我需要 跟踪连接/活动客户端 从服务器端closures任何客户端 捕捉事件,当一个设备closures连接 获取字节数据 发送数据给客户 我开始通过互联网阅读这个话题,但对我来说似乎是一场噩梦。 有很多方法,但我找不出哪一个是最好的。 asynchronous套接字方法似乎对我来说是最好的,但编写这种asynchronous样式的代码是可怕的,不容易debugging。 所以我的问题是:你认为在C#中实现高性能TCP服务器的最好方法是哪一个? 你知道有这么好的开源组件吗? (我尝试了几个,但我找不到一个好的。)

向非C ++程序员解释C ++ SFINAE

什么是C ++中的SFINAE? 你可以用一个对C ++不熟练的程序员来解释吗? 此外,SFINAE对应于像Python这样的语言中的什么概念?

我如何高斯模糊图像,而不使用任何内置的高斯函数?

我想使用本机高斯模糊公式模糊我的图像。 我读了这个 ,但我不知道如何实现这一点。 我如何使用公式来决定权重? 我不想使用像MATLAB那样的任何内置函数

在OpenGL中绘制球体而不使用gluSphere()?

有没有任何教程,解释了如何在OpenGL中绘制球体而不必使用gluSphere() ? 许多OpenGL的3D教程只是在立方体上。 我已经search,但绘制一个球体的大部分解决scheme是使用gluSphere() 。 还有一个网站有代码在这个网站上绘制一个球体,但它不能解释绘制球体的背后的math。 我也有其他版本的如何绘制在多边形领域,而不是四边形在该链接。 但是,我不明白这些代码是如何绘制的。 我希望能够可视化,以便我可以在需要时修改球体。

visual c ++:#在同一解决scheme中包含来自其他项目的文件

我正在使用Visual C ++进行游戏。 我在单独的项目中有一些组件,并设置了项目依赖关系。 我如何从一个不同的项目中包含头文件? 我不知道如何使用另一个项目中的类。

.NET控制台应用程序作为Windows服务

我有控制台应用程序,并希望将其作为Windows服务运行。 VS2010有项目模板,可以连接控制台项目和构buildWindows服务。 我不想添加分离的服务项目,并且如果可能的话,将服务代码集成到控制台应用程序中,以将控制台应用程序保持为可作为控制台应用程序运行的项目,或者如果例如通过使用开关的命令行运行, 也许有人可以build议类库或代码片断,可以快速,轻松地将C#控制台应用程序转换为服务?

“文件末尾没有换行符”编译器警告

在一些C ++编译器中出现以下警告的原因是什么? 文件结尾没有换行符 为什么我应该在源代码/头文件的末尾有一个空行?