小编Hos*_*Aly的帖子

如何创建(32位).NET应用程序以使用3 GB RAM?

我正在创建一个需要使用大量RAM的.NET应用程序(C#).我最近知道在32位版本的Windows XP上我只能使用2 GB,除非我使用/3Gb交换机,并IMAGE_FILE_LARGE_ADDRESS_AWARE在可执行标头中设置标志.但是因为我正在开发.NET应用程序,我想我无法直接修改可执行文件,是吗?那么,我该怎么做才能让我的应用程序使用3 GB?

.net memory windows

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

枚举器实现:使用struct还是class?

我注意到List<T>它将枚举器定义为a struct,同时ArrayList将其枚举器定义为class.有什么不同?如果我要为我的班级写一个调查员,哪一个更好?

编辑:我的要求无法使用yield,所以我正在实现我自己的枚举器.也就是说,我想知道是否更好地遵循这些方法List<T>并将其作为结构实现.

.net c# enumeration struct-vs-class

11
推荐指数
5
解决办法
5698
查看次数

检测并重新启动崩溃的.NET应用程序

如何检测我的.NET应用程序崩溃,然后重新启动它?

.net

11
推荐指数
3
解决办法
5429
查看次数

这个(无锁)队列实现线程安全吗?

我正在尝试用Java创建一个无锁队列实现,主要用于个人学习.队列应该是一般的,允许任意数量的读者和/或作者同时.

您能否回顾一下,并提出您发现的任何改进/问题?

谢谢.

import java.util.concurrent.atomic.AtomicReference;

public class LockFreeQueue<T> {
    private static class Node<E> {
        E value;
        volatile Node<E> next;

        Node(E value) {
            this.value = value;
        }
    }

    private AtomicReference<Node<T>> head, tail;

    public LockFreeQueue() {
        // have both head and tail point to a dummy node
        Node<T> dummyNode = new Node<T>(null);
        head = new AtomicReference<Node<T>>(dummyNode);
        tail = new AtomicReference<Node<T>>(dummyNode);
    }

    /**
     * Puts an object at the end of the queue.
     */
    public void putObject(T value) {
        Node<T> newNode = new …
Run Code Online (Sandbox Code Playgroud)

java multithreading locking thread-safety

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

实体框架 - 存储过程返回值

我试图获取存储过程的返回值.以下是此类存储过程的示例:

select
    Name,
    IsEnabled
from
    dbo.something
where
    ID = @ID

if @@rowcount = 0
    return 1    

return
Run Code Online (Sandbox Code Playgroud)

这是一个简单的选择.如果找到0行,我的结果集将为null,但我仍然会有一个返回值.

这是一个糟糕的例子,因为这是一个选择,所以我确定我能找到返回0行.但是,在插入,删除或其他调用中,我们需要此返回值来了解是否存在问题.我一直无法找到获得此返回值的方法.我可以得到输出值,我可以得到结果集,但没有返回值.

如果我手动调用SQL,或者即使我SqlCommand使用实体框架运行,我也可以获得返回值,但这不是我想要做的.

有没有人能够使用Entity Framework从存储过程中获取返回值?

谢谢您的帮助!

c# sql stored-procedures entity-framework

11
推荐指数
2
解决办法
3万
查看次数

编译错误重构是否错误?

我已经习惯通过引入编译错误来做一些重构.例如,如果我想从我的类中删除一个字段并使其成为某些方法的参数,我通常首先删除该字段,这会导致该类的编译错误.然后我会将参数引入我的方法,这将打破调用者.等等.这通常给我一种安全感.我还没有读过关于重构的任何书籍,但我曾经认为这是一种相对安全的方法.但我想知道,它真的安全吗?或者这是一种糟糕的做事方式?

refactoring compiler-errors

10
推荐指数
4
解决办法
761
查看次数

在Unity App.Config文件中包含泛型类

我有一个类型的类ISimpleCache<IBrokeredDataObject>,我想在App.Config文件中添加为类型别名(然后是类型)

这条线

<typeAlias alias="ISimpleCacheOfIBrokeredDataObject" type="MyApplication.ISimpleCache<IBrokeredDataObject>, MyApplication" />
Run Code Online (Sandbox Code Playgroud)

由于<>显然是错误的,但我不相信逃避它们;

<typeAlias alias="ISimpleCacheOfIBrokeredDataObject" type="MyApplication.ISimpleCache&lt;IBrokeredDataObject&gt;, MyApplication" />
Run Code Online (Sandbox Code Playgroud)

也是正确的.

我目前正在将我的代码拆分为使用Unity,因此距离可编译的代码库太远而无法快速测试,并希望在此处得到一些确认.

c# generics app-config unity-container

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

如何编写(测试)编译器/ JIT无法优化的代码?

我对编译器和JIT优化的内部结构并不是很了解,但我通常会尝试使用"常识"来猜测什么可以优化,什么不可以.所以我今天正在编写一个简单的单元测试方法:

@Test  // [Test] in C#
public void testDefaultConstructor() {
    new MyObject();
}
Run Code Online (Sandbox Code Playgroud)

这种方法实际上就是我所需要的.它检查默认构造函数是否存在并且运行时没有异常.

但后来我开始考虑编译器/ JIT优化的影响.编译器/ JIT可以通过new MyObject();完全消除语句来优化此方法吗?当然,需要确定调用图对其他对象没有副作用,这是普通构造函数的典型情况,它只是初始化对象的内部状态.

我假设只允许JIT执行这样的优化.这可能意味着它不是我应该担心的事情,因为测试方法只执行一次.我的假设是否正确?

然而,我正在考虑一般主题.当我想到如何防止这种方法被优化时,我想我可能assertTrue(new MyObject().toString() != null),但这非常依赖于该toString()方法的实际实现,即使这样,JIT也可以确定该toString()方法总是返回一个非空字符串(例如如果实际Object.toString()被调用),从而优化整个分支.所以这种方式不起作用.

我知道在C#中我可以使用[MethodImpl(MethodImplOptions.NoOptimization)],但这不是我真正想要的.我希望找到一种(语言无关的)方法来确保我的代码的某些特定部分实际上按照我的预期运行,而JIT不会干扰这个过程.

另外,在创建单元测试时,我应该注意哪些典型的优化案例?

非常感谢!

.net c# java optimization jit

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

在Rails 4中放置Web worker文件的位置?

HTML5 Web Workers通常依赖于外部脚本importScripts().这些脚本应该放在Rails 4的哪个位置,以便它们按照资产管道正常缩小,但仍能正常工作?

使用需要解决的资产管道时存在一些问题:

  1. 外部脚本(如果置于其下)vendor/assets默认情况下不由资产管道处理(在Rails 3中不是这种情况).
  2. 如果脚本放在下面app/assets,则需要将它们包含在内application.js以便进行处理.但是,工作文件不应包含在组合输出中(即application-[digest].js).
  3. 如果脚本包含在资产配置中,则生成的文件将在其文件名中包含摘要.要加载工作者,需要向浏览器提供其路径(例如new Worker('myWorker.js'),我们如何找到路径?(我试过asset_path,但它没有用).
  4. 就像在3中一样,工作人员在调用时需要按名称引用其他文件importScripts().我们如何找到加载的路径?

asset-pipeline ruby-on-rails-4

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

是否有类似于微软CHESS的Java工具?

是否存在类似于Microsoft的CHESS的 Java现有工具?或者CHESS源代码是否打开,以便我可以尝试将其转换为Java?

.net java

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