小编Bri*_*gon的帖子

OutOfMemory异常

  1. OutofMemory异常的可能原因是什么?

  2. 内存分配应由GC处理.

  3. 分配了多少内存/可用于普通的.NET/C#应用程序

在我们的应用程序它是在不同的地方,如Stream.ReadToEnd()DataTable.WriteXml(Memory stream)功能.

环境是.Net C#

c# garbage-collection out-of-memory

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

某些文本编辑器支持HTML5语法高亮?记事本++可能吗?

我正在尝试在新项目上转向HTML5,这不需要高跨浏览器主义.但是,我找不到将HTML5标签(例如headeraside)添加到其他html标签中的"普通"标签的方法,因此它们会突出显示.没有颜色的代码确实减慢了开发速度,所以我必须坚持使用xhtml直到这个问题得到解决.

我正在使用Notepad ++,所以特别要解决这个问题会很棒.如果这超出范围,我想听听任何其他类似(轻巧,紧凑)的文本编辑器,它更好地支持HTML5.

html5 syntax-highlighting notepad++

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

如何从Memory Stream打开文件

是否可以直接从MemoryStream反对写入磁盘打开文件并进行操作Process.Start()?特别是pdf文件?如果没有,我想我需要写入MemoryStream磁盘(这有点烦人).有人可以指向我有关如何写入MemoryStream磁盘的资源吗?

c# file-io memorystream file

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

在 Linux 机器上使用 XAMPP (LAMPP) 解决权限问题的最佳实践

问题

我最近开始在我的一台笔记本电脑上使用 Linux。我在 Mac 和 Window OS 上安装了我非常熟悉的 XAMPP (LAMPP),以便开发我的 WordPress 主题等。

我一直遇到烦人的权限问题,我明白这是 Linux 学习曲线的一部分。我不熟练使用终端命令。

在做任何事情之前,我无法在没有访问权限错误的情况下从其他计算机导入我的任何 Wordpress 开发文件。

使用终端我更改了 htdocs 文件夹中的权限:

sudo chmod 777 -R /opt/lampp/htdocs
Run Code Online (Sandbox Code Playgroud)

这解决了一个问题,似乎我的 WP 文件已被识别,但现在我无法连接到我在 phpMyAdmin 中创建的数据库,使用正确的数据库名称,root 作为用户,密码没有任何内容,这在我创建 WordPress 时工作正常从这台笔记本电脑中安装。

我只有在从 zip 或其他方式将文件导入 htdocs 时才会遇到这些问题。

是否有一组在 Linux 机器上设置 XAMPP (LAMPP) 的最佳实践,以便没有权限问题或其他问题妨碍使用 Wordpress(和其他程序)的本地安装。

谢谢!

xampp localhost lampp

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

递归函数,堆栈溢出和Y组合器

我有一个递归函数(在C#中),我需要调用大约8亿次; 这显然通常会在大约第900次呼叫后导致堆栈溢出.我已经将它踢出了多个循环,但递归模式更容易,维护更清晰.

我正在考虑使用y-combinator实现递归函数,就像我正在阅读和看到的那样,它应该解决堆栈溢出问题,并修复多个嵌套循环.

有没有人有使用y-combinator的经验?我还会陷入堆栈溢出吗?

以一个阶乘的简单例子为例.大多数数字大于5,000的因子将导致堆栈溢出.如果我在那个场景中正确使用了y-combinator,它会修复堆栈溢出吗?

它实现起来似乎微不足道,所以我想在开发工作/资源实现和学习y-combinator之前确认它.

c# stack-overflow recursion functional-programming y-combinator

5
推荐指数
3
解决办法
857
查看次数

简单的C#数组抛出OutOfMemory异常

我有一个相当大,相当简单的数组,它跟踪750,000个条目.在64位.NET中它运行良好; 但是在32位客户端上,它失败并出现OutOfMemory异常.我知道我的记忆力不足.需要此程序的客户端,不能使用64位版本.

以下伪代码编译(编辑:原始代码由于拼写错误而无法编译,已修复),并且在两台计算机上针对x86体系结构时抛出相同的异常:

  • Windows XP,32位计算机,运行4 GB RAM和.NET Framework 4
  • Windows 7,64位计算机,运行8 GB RAM和.NET Framework 4

编辑:将编译器标志显式切换为目标x64体系结构允许它在Windows 7,64位计算机上运行.

using System;

public class Storage
{
    Storage futureStorage;
    int count;
    int years;
    bool isTest;
    bool isSet;
}

public static class Program
{
    public static void Main()
    {
        Storage[] storageArray = new Storage[750000];
        for (int i = 0; i < 750000; i++)
        {
            storageArray[i] = new Storage();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


编辑:

运行此代码的网络是一个封闭的网络,没有外部网络连接,因此发布更精确的代码和相关的异常详细信息更多的是我正在处理的过程.我确实有intellitrace运行,有完整的调试符号和一些编译器开关,一旦我将它移植到互联网连接网络,就会有更多细节.


在这两台机器上,代码在693,000的索引周围爆炸(在XP上为693,002,在Windows 7上为693,646).

任何人都有任何想法可能是什么问题?当我在代码之后进行转储和配置文件时,我几乎不使用25 …

.net c# arrays out-of-memory

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

如何在C#中做一个比较函数

假设我在列表中有元素(X,Y和Z),我有一个函数,它生成一个百分比,两个对象彼此相似的程度.

我想要做的是使用我的compareElements对Y和Z运行X,所以:

compareElements(X,Y); // equals 55
compareElements(X,Z); // equals 60
Run Code Online (Sandbox Code Playgroud)

然后Y对抗X和Z.

compareElements(Y,X); // equals 55
compareElements(Y,Z); // equals 62
Run Code Online (Sandbox Code Playgroud)

然后Z对Y和X

compareElements(Z,X); // equals 60
compareElements(Z,Y); // equals 62
Run Code Online (Sandbox Code Playgroud)

然后,我返回最高值,即62.

显然,那里有一些重复,我不需要重复,但我不知道如何消除它.

如何构建我的LINQ查询或函数/算法来对每个元素进行这种比较,而不重复?

如果可以的话,我更喜欢使用LINQ,因为我传递了一个可枚举的函数,并且在列表实际枚举之前函数返回,因此我们可以节省执行比较的成本,直到列表被枚举.

我只需要比较函数的最高值,62.

注意:我的实际结果集我正在使用列表中3到10个元素之间的平均值,需要通过此比较函数运行.

c# linq comparison

5
推荐指数
3
解决办法
1325
查看次数

参数分隔符

我有C#应用程序,我们一直在ADO.NET中编写代码.我一直在使用IDbCommandIDbConnection接口来创建跨数据库代码.

到目前为止,这一切都非常有效(跨Firebird,SQLite,SQL Server 2005和2008,Access 2007,Access 2010和Oracle 11g).

我遇到的问题是,我现在有一个我需要支持的Oracle 10g数据库.

然而,当我使用接口创建参数IDataParametercmd.CreateParamater()在10g上失败时,所有"正常"的东西,创建连接和命令都可以正常工作,因为查询中的参数语法(我正在使用参数化查询).

显然,开箱即用的Oracle 10g不支持使用该@标志.Oracle 11g,SQL Server以及提到的所有其他功能.

例如,以下查询将在10g中失败:

select * from Products where ProductId = @ProductId
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用冒号,使用上面提到的ado.net接口就可以成功,所以这个查询会成功:

select * from Products where ProductId = :ProductId
Run Code Online (Sandbox Code Playgroud)

不幸的是,冒号在大多数其他数据库实现中都不起作用.

或者是否有一个可以在Oracle 10g数据库中翻转的选项,该选项允许@使用:分隔符代替参数的分隔符.

我当前的解决方案不太理想,我有客户/客户端初始化属性ParameterDelimiter(我默认为@标志),并使用string.Format,来插入ParameterDelimiter.

有没有任何标准的方法可以做到这一点,我缺少,没有客户必须通过我的分隔符,或没有我的基础库了解数据库实现?(例如,包括ODP.NET和检查OracleConnection)

c# oracle ado.net odp.net parameterized-query

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

Facebook android本机应用程序无法在实际设备上工作

我开发了一个应用程序,使用我们可以登录到Facebook,并可以存储已记录的用户详细信息.当我们在模拟器上运行应用程序时工作正常,但是当我们在Android设备上运行相同的应用程序时,它不会运行.它只会反复显示加载但不显示登录窗口.

  • 我使用facebook提供给我的appID.
  • 我在facebook开发部分中使用了hashkey.

整体应用(如Facebook登录窗口,返回用户的信息)是在不同的仿真器工作良好,但在实际设备上甚至没有打开登录窗口,它只是显示加载...

android facebook emulation

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

VS 2010 或 2012 中当前选择的“解决方案配置”选项存储在哪里?

在 VS 2010 或 VS 2012 中,您可以选择自定义定义的“解决方案配置”,它可以定义与#if #elif #endif语法一起使用的局部变量,以通过该下拉列表动态更改代码。同样在该配置中,您可以选择它是构建还是部署、您的目标平台以及您要为每个项目使用的本地配置。

当您选择一个配置,然后关闭 Visual Studio,然后重新打开 Visual Studio,它会记住您选择的配置,我似乎无法弄清楚的是它保存/存储该配置信息的位置,我需要自动化它。

有谁知道:

  • 一种使用命令行编译器使用解决方案配置自动化解决方案级别构建的方法
  • Visual Studio 存储当前选择的配置信息的地方
  • 或者,理想情况下,两者兼而有之?

configuration command-line automation build visual-studio

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