小编Hei*_*nzi的帖子

为什么多线程文件传输可以提高性能?

RichCopy,一种比微软更好的robocopy-with-GUI工具,似乎是当前复制文件的首选工具.在介绍该工具TechNet文章中,其中一个主要功能是它并行复制多个文件.在默认设置中,同时复制三个文件,您可以在GUI中很好地看到:[进度:文件A的xx%,文件B的yy%,...].有很多博客 条目赞美这个工具并声称这加快了复制过程.

我的问题是:为什么这种技术可以提高性能?据我所知,在现代计算机系统上复制文件时,硬盘是瓶颈,而不是CPU或网络.我的假设是一次复制多个文件会使整个过程变慢,因为HDD需要在不同文件之间来回跳转,而不是只是顺序地传输一个文件.由于RichCopy的更快的,必须有我的假设一些错误...

hardware performance multithreading

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

{}括号在Binding语法的StringFormat部分中意味着什么?

在数据绑定中,您可以使用多重绑定..对于多重绑定,您可以组合{} {0} {1}等属性.我的问题是第一个{}是什么意思?我不是在讨论用于选择要使用的属性的{0}.

谢谢.

data-binding wpf xaml

16
推荐指数
1
解决办法
1399
查看次数

.NET Framework 4.5操作系统要求(无Vista和XP)

目前,.NET Framework 4.5仅在Windows 7及更高版本上运行:

Operating system                        Version 4.5 Beta
--------------------------------------------------------
Windows 8 Consumer Preview                ? (see notes)
Windows 7, all editions                   ?
Windows Vista, all editions               —
Windows XP Professional, all editions     —
Run Code Online (Sandbox Code Playgroud)

虽然我知道XP支持正在被删除,但我对于不支持Vista的决定感到有些惊讶.(毕竟,.NET 4支持XP及更高版本.)

是否有任何迹象(新闻公告,MSDN博客条目......)在.NET 4.5发布时将支持更多操作系统?

.net operating-system prerequisites .net-4.5

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

折叠Android布局中的边距

是否有可能在Android中使利润率崩溃?比方说,我有一个LinearLayout和添加三个TextView,每个具有一个android:layout_margin10dp.我得到以下结果:

实际结果

但是,我想得到这个结果:

预期结果

我知道我可以通过为不同的项目设置不同的上/下边距来解决这个问题:

  • 将第一个项目的上边距和最后一个项目的下边距设置为10dp,
  • 将剩余的上/下边距设置为5dp,

但这会使设计更复杂(特别是如果动态创建TextView).有没有办法让边距在CSS中表现得像?(有关为什么这有意义的解释,请参阅:CSS折叠边距的重点是什么?)

android margin collapse android-layout

16
推荐指数
1
解决办法
2254
查看次数

为什么WCF/JSON没有为null返回值返回`null`?

根据JSON规范,表示空值的正确方法是文字null.

如果是这种情况,为什么WCF会返回空响​​应而不是null?这是一个错误还是在某处记录了这种行为?

完整的repro示例:

using System;
using System.ServiceModel;
using System.ServiceModel.Web;

[ServiceContract()]
public class Service1
{
    [OperationContract(), WebGet(ResponseFormat = WebMessageFormat.Json)]
    public string GetSomeString() { return "SomeString"; }

    [OperationContract(), WebGet(ResponseFormat = WebMessageFormat.Json)]
    public string GetNull() { return null; }
}

public class Host
{
    public static void Main()
    {
        // Very simple WCF server
        var host = new WebServiceHost(typeof(Service1), new Uri("http://localhost:8000/"));
        host.AddServiceEndpoint(typeof(Service1), new WebHttpBinding() {
            HostNameComparisonMode = HostNameComparisonMode.Exact
        }, "");

        host.Open();
        Console.WriteLine("Service is running, press enter to …
Run Code Online (Sandbox Code Playgroud)

c# wcf json

16
推荐指数
1
解决办法
861
查看次数

用于转义.NET命令行参数的规范解决方案

问题:给定文件名和任意字符串列表,是否有一种规范的方法来创建单个命令行,以便Environment.GetCommandLineArgs(和C#的void main(String[] args)/ VB Sub Main(args() As String))将返回相同的字符串列表?


背景:.NET将命令行拆分为参数的方式非常复杂,例如:

如果双引号跟随两个或偶数个反斜杠,则每个前进的反斜杠对将替换为一个反斜杠,并删除双引号.如果双引号跟随奇数个反斜杠(包括只有一个),则每个前一对用一个反斜杠替换,剩下的反斜杠被删除; 但是,在这种情况下,双引号不会被删除.

许多人尝试简单的"将每个参数放在双引号中并转义现有的双引号"方法,并且只要其中一个参数包含一个尾部反斜杠就会失败.有关此问题的StackOverflow存在各种问题,例如:

然而,他们的答案要么不够通用,不能为所有案例提供规范解决方案,要么似乎是"迭代地"开发("哦,还有一个我忘了的特殊情况,让我们添加它,现在它应该覆盖大多数情况...... ").由于这是一个非常常见的问题,我希望看到一个解决方案,例如,通过其中任何一个提供信心

  • 来自权威来源(可能来自参与此疯狂命令行约定的开发人员之一的博客条目)或
  • 提供给定算法满足.NET命令行要求的正式证明.

.net c# vb.net command-line-arguments

15
推荐指数
1
解决办法
2833
查看次数

在.NET中模拟VBA算法

免责声明:我知道0.025无法在IEEE浮点变量中准确表示,因此,舍入可能无法返回预期的值.那不是我的问题!


是否可以在.NET中模拟VBA算术运算符的行为?

例如,在VBA中,以下表达式产生3:

Dim myInt32 As Long
myInt32 = CLng(0.025 * 100)      ' yields 3
Run Code Online (Sandbox Code Playgroud)

但是,在VB.NET中,以下表达式产生2:

Dim myInt32 As Integer
myInt32 = CInt(0.025 * 100)      ' yields 2
Run Code Online (Sandbox Code Playgroud)

根据规范,两者都应返回相同的值:

  • Long(VBA)和Integer(VB.NET)是32位整数类型.
  • 根据VBA规范,CLng执行Let-coercion to Long,而数字类型之间的let-coercion使用Banker的舍入.VB.NET的CInt 也是如此.
  • 0.025 在两种情况下都是双精度IEEE浮点常数.

因此,浮点乘法运算符或整数转换运算符的一些实现细节发生了变化.但是,出于与传统VBA系统兼容的原因,我需要在.NET应用程序中复制VBA的数学行为(不管它可能是错误的).

有办法做到这一点吗?有人写过Microsoft.VBA.Math图书馆吗?或者是在某处记录了精确的 VBA算法,所以我自己可以做到这一点?

.net vb.net math vba

15
推荐指数
2
解决办法
420
查看次数

git:在工作副本之间推送的简单解决方案

我想做什么:在我的(ssh远程访问)大学机器上,我处理一个项目,我已经放在git源代码控制下(git init然后git commit -a在每次更改后,一切正常).现在我想在家里的私人机器上处理该项目.应该很容易,因为git是一个分布式的vcs,对吧?

我阅读了git教程,建议git pull在大学里做一个在家里完成修改的教程.这是行不通的,因为我家里的机器无法远程访问.所以我以为我会git push在家做一个.这是有效的,但它很复杂(git reset之后需要在大学等),因为非裸存储库不是为推动而设计的.

问题1:是否有一种比在我的设置中添加额外的裸存储库更简单的方法(这意味着我有:(1)"主"裸存储库,(2)大学工作副本,(3)家庭工作副本)?
<Rant>如果我真的需要这个设置,我可以留在SVN.</ Rant>

问题2:如果真的需要这个设置,我如何创建那个裸存储库(git clone --bare我猜)并使其成为"主"存储库,即告诉git push应该去那里的工作副本.

PS:我知道有一个后置接收挂钩可以让你进入非裸存储库.我试过了,但由于大学机器上的git版本相当陈旧(1.5.5.6)并且错过了钩子使用的一些命令,因此效果不佳.更新不是一种选择,我更喜欢没有第三方脚本的解决方案.

git dvcs repository git-push

14
推荐指数
1
解决办法
3273
查看次数

Googlebot会导致.NET System.Web.HttpException

我有一个ASP.NET网站与经典asp混合(我们正在转换到.NET),我最近从.NET 1.1升级到.NET 4.0并切换到IIS 7中的集成管道.

由于这些更改ELMAH报告来自经典asp页面的错误,实际上没有详细信息(和状态代码404):

System.Web.HttpException (0x80004005)
   at System.Web.CachedPathData.ValidatePath(String physicalPath)
   at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
Run Code Online (Sandbox Code Playgroud)

但是当我自己请求页面时,不会发生错误.ELMAH中出现的所有这些错误都是由Googlebot抓取工具(用户代理字符串)引起的.

.NET如何为经典的asp页面选择错误?这与集成管道有关吗?

任何想法为什么只有当Google抓取页面时才会发生错误,或者我如何获取更多详细信息以查找潜在的错误?

asp.net elmah exception asp-classic

14
推荐指数
2
解决办法
3147
查看次数

如何在VBA中为Variant分配Variant?

(警告:虽然乍看之下可能看起来像是一个问题,但这不是初学者级别的问题.如果你熟悉"强迫"一词,或者你曾经研究过VBA规范,请继续阅读.)

假设我有一个类型的表达式Variant,我想将它分配给一个变量.听起来很简单吧?

Dim v As Variant

v = SomeMethod()    ' SomeMethod has return type Variant
Run Code Online (Sandbox Code Playgroud)

不幸的是,如果SomeMethod返回一个Object(即VarType为vbObject的Variant),则强制启动并v包含该对象的"简单数据值".换句话说,如果SomeMethod返回对TextBox的引用,v则将包含一个字符串.

显然,解决方案是使用Set:

Dim v As Variant

Set v = SomeMethod()
Run Code Online (Sandbox Code Playgroud)

这不幸的是,如果失败,SomeMethod没有返回一个对象,例如一个字符串,产生类型不匹配错误.

到目前为止,我找到的唯一解决方案是:

Dim v As Variant

If IsObject(SomeMethod()) Then
    Set v = SomeMethod()
Else
    v = SomeMethod()
End If
Run Code Online (Sandbox Code Playgroud)

这有SomeMethod两次打电话的不幸副作用.

没有需要调用SomeMethod两次的解决方案?

vba types variant

14
推荐指数
1
解决办法
3198
查看次数