小编Jus*_*tin的帖子

具有多个选择的WPF TreeView

标准WPF 树视图不支持多个选择.

如何添加支持多个选择的树视图到我的WPF应用程序?商业产品很好(我目前知道一个商业实施 - http://www.telerik.com/products/wpf/treeview.aspx)

wpf treeview multi-select

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

处理可选的依赖项(C#)

我们有一个可选择与TFS集成的应用程序,但由于集成是可选的,我显然不希望所有机器都需要TFS程序集作为要求.

我该怎么办?

  1. 我可以在我的主程序集中引用TFS库,并确保在使用TFS集成时只引用TFS相关对象.
  2. 或者,更安全的选择是在一些单独的"TFSWrapper"程序集中引用TFS库:

    一个.那么我可以直接引用该程序集(只要我小心我所说的)

    湾 我应该为我的TFSWrapper程序集公开一组接口来实现,然后在需要时使用反射来实例化这些对象.

1对我来说似乎有风险,另一方面2b看起来过于顶层 - 我本质上是建立一个插件系统.

当然必须有一个更简单的方法.

c# dependencies

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

从C#中的SQL数据库读取DateTime值时没有毫秒值

我有一个存储在SQL服务器中的高精度日期,例如

2009-09-15 19:43:43.910
Run Code Online (Sandbox Code Playgroud)

但是,当我将该值转换为DateTime时,生成的DateTime值的毫秒值为0:

reader["Timestamp"] = 15/09/2009 19:43:43.000
Run Code Online (Sandbox Code Playgroud)

将这些DateTime值精确到毫秒级对我来说非常重要 - 这样做的最佳方法是什么?

更新:这是执行转换的代码:

DateTime myDate = (DateTime)reader[Timestamp"];
Run Code Online (Sandbox Code Playgroud)

SELECT声明没有什么特别之处,事实上它是SELECT *- 没有花哨的演员或任何东西

看起来,由simple返回的DateTime对象SqlDataReader没有填充Millisecond值

c# sql-server datetime

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

有意内存密集型应用程序的内存管理

注意:我知道内存密集型应用程序中的内存管理问题,但是这个问题似乎是关于频繁进行内存分配的应用程序,而我的问题是关于有意设计消耗尽可能多的物理内存的应用程序.

我有一个服务器应用程序,它使用大量内存来执行缓存和其他优化(想想SQL Server).应用程序在专用计算机上运行,​​因此可以(并且应该)消耗尽可能多的内存,以便加速和增加吞吐量和响应时间,而无需担心影响系统上的其他应用程序.

麻烦的是,如果内存使用被低估,或者负载增加,最终可能会因内存分配失败而导致令人讨厌的失败 - 在这种情况下,最好的做法是释放内存以防止故障,但代价是表现.

一些假设:

  • 该应用程序在专用计算机上运行
  • 应用程序的内存要求超出了计算机上的物理内存(也就是说,如果应用程序可以使用额外的内存,它总是能够以某种方式使用该内存来改善响应时间或吞吐量)
  • 以某种方式有效地管理存储器,使得存储器碎片不是问题.
  • 应用程序知道可以安全释放哪些内存,以及应该首先释放哪些内存以获得最小的性能影响.
  • 该应用程序在Windows计算机上运行

我的问题是 - 我应该如何在这样的应用程序中处理内存分配? 特别是:

  • 如何预测内存分配是否会失败?
  • 我是否应该留出一定的内存空间以确保核心操作系统操作保持响应(并且不会以这种方式对应用程序性能产生负面影响),以及如何找出内存量?

核心目标是防止因使用太多内存导致的故障,同时尽可能多地占用内存.

我是一个C#开发人员,但我希望任何这样的应用程序的基本概念都是相同的,无论语言如何.

windows memory-management

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

在不使用pragma的情况下禁用C中的结构填充

如何在不使用pragma的情况下禁用C中的结构填充?

c pragma

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

如何将3D图像输出到3D电视?

我有一台3D电视,并且觉得如果我至少没有尝试让它显示我自己创作的3D图像,那么我将推卸我的职责(作为一个极客)!

我以前做过非常基本的OpenGL编程,因此我理解了所涉及的概念 - 假设我可以将自己渲染成一个简单的四面体或立方体并让它旋转一下; 如何让3D电视以3D形式显示此图像?

请注意,我理解3D工作原理的基础知识(从两个不同角度渲染两次相同的图像,每只眼睛一次),我的问题是关于实际执行此操作的物流(我需要SDK吗?等等...)

  • 我使用偏振3D的电视,虽然我的意图是这个问题也与其他3D技术有关(如果可能的话)
  • 我的笔记本电脑有一个HDMI输出,这是我打算连接到我的电视使用的(这与使用VGA /分量视频电缆有什么不同?)
  • 在过去,我已经尝试过GLUT/OpenGL,但是如果它更容易/只能使用一些替代技术来实现这一点,那就好了

opengl 3d television stereoscopy

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

更改bios代码/刷新BIOS

我花了很多时间开发一个操作系统并在我的低级引导加载程序上工作.但是现在我想从操作系统上抽出一些时间,而不是离开低级环境并做一些涉及安全的事情.

因此,我选择按照预启动身份验证方案构建自己的标准密码实用程序.由于我希望软件至少具有一点便携性,我希望它尽可能少地使用外部支持.我认为如果我以某种方式设法在运行的实模式操作系统内的自检和int 19引导程序之间"挂钩"到bios中,我会是最好的.

然而,找到关于如何修改bios代码的信息被证明是不可能的.我没有发现如何实现前面提到的.我只找到了描述如何刷新BIOS的页面.

有谁知道我如何读/写BIOS代码?或者有人可以提供描述这个的页面的链接?

我知道这不仅可能会破坏我的设备,但它也很可能,我知道风险并愿意接受它.

security assembly operating-system bios osdev

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

c#:ExecuteNonQuery()返回-1

我之前使用过这种方法来返回更改的行数.我是运行insert方法,插入在存储过程中运行正常,但ExecuteNonQuery的返回值始终返回-1.

这是我的C#代码:

int ret = 0;

using (SqlConnection conn = new SqlConnection(this.ConnectionString))
{
    using (SqlCommand cmd = new SqlCommand(QueryName, conn))
    {
        conn.Open();

        if (Params != null)
            cmd.Parameters.AddRange(Params);

        cmd.CommandType = CommandType.StoredProcedure;

        ret = cmd.ExecuteNonQuery();

        conn.Close();
    }
}

return ret;
Run Code Online (Sandbox Code Playgroud)

为什么我得到-1而不是更改的实际行数?

c# executenonquery

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

SQL差的存储过程执行计划性能 - 参数嗅探

我有一个存储过程接受一个日期输入,如果没有传入值,则该日期输入稍后设置为当前日期:

CREATE PROCEDURE MyProc
    @MyDate DATETIME = NULL
AS
    IF @MyDate IS NULL SET @MyDate = CURRENT_TIMESTAMP
    -- Do Something using @MyDate
Run Code Online (Sandbox Code Playgroud)

我遇到问题,如果@MyDateNULL第一次编译存储过程时传入if ,则对于所有输入值(NULL或其他),性能总是很糟糕,如果在编译存储过程时传入日期/当前日期性能适用于所有输入值(NULL或其他).

令人困惑的是,即使实际 使用@MyDate的值NULL(而不是CURRENT_TIMESTAMP由IF语句设置),生成的糟糕执行计划也很糟糕

我发现禁用参数嗅探(通过欺骗参数)修复了我的问题:

CREATE PROCEDURE MyProc
    @MyDate DATETIME = NULL
AS
    DECLARE @MyDate_Copy DATETIME
    SET @MyDate_Copy = @MyDate
    IF @MyDate_Copy IS NULL SET @MyDate_Copy = CURRENT_TIMESTAMP
    -- Do Something using @MyDate_Copy
Run Code Online (Sandbox Code Playgroud)

我知道这与参数嗅探有关,但我看到的所有"参数嗅探变坏"的例子都涉及使用传递的非代表性参数编译存储过程,但是在这里我看到了执行计划是可怕的SQL Server可能认为执行该语句其中参数可能需要在该点所有可能的值- NULL,CURRENT_TIMESTAMP或以其他方式.

有没有人知道为什么会这样?

sql t-sql sql-server parameter-sniffing sql-execution-plan

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

在C#.NET中启动和停止进程

我正在尝试编写一个简单的程序,它有两个方法,一个启动一个进程,一个启动同一个进程.如:

public Process StartProc(string procname)
{
    Process proc = new Process();
    proc.StartInfo.FileName = procname;
    proc.Start();
    return proc;
}

public void StopProc(Process proc)
{
    proc.Close();
}
Run Code Online (Sandbox Code Playgroud)

有可能这样做吗?

.net c# process

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