小编em7*_*m70的帖子

将套接字句柄从.NET传递到非托管子进程

我目前有一个.NET程序启动与服务器的连接并启动另一个非托管可执行文件.本机进程应该接管相同的套接字(在子进程终止之前,连接不必关闭!)并开始通过它与服务器进行通信.

上述程序在Windows上运行,但是我更喜欢不涉及P/Invoke for .NET部分的解决方案.作为旁注,从父母到子进程的通信不是问题所以我可以轻松地在两者之间共享数据.
此外,一旦我开始使用本机进程中的套接字,我不再需要在.NET进程中使用它,并且.NET进程在我使用非托管进程中的套接字之前终止,因此随之而来解决方案我需要知道如何处理.NET中的Socket对象,以便它的处理不会影响操作系统套接字及其可用性.

提前致谢!

.net c# sockets winsock

6
推荐指数
1
解决办法
1884
查看次数

F#:curried overload/tupled overload问题

在将一些代码迁移到VS2010 b1中包含的最新版本的F#时,我遇到了一个问题,我想知道是否有可用的解决方法 - 如果没有 - 为什么F#编译器的行为被修改为不支持该方案.


type Foo(a) =
    [<OverloadID("CurriedAbc")>]
    member public x.Abc (p:(oneType * anotherType) seq) otherParm = method impl...

    //this overload exists for better compatibility with other languages
    [<OverloadID("TupledAbc")>]
    member public x.Abc (p:Dictionary<oneType, anotherType>, otherParm) =
        x.Abc(p |> Seq.map(fun kvp -> (kvp.Key, kvp.Value))) otherParm
Run Code Online (Sandbox Code Playgroud)

此代码生成以下编译时错误:

错误FS0191:此方法的一个或多个重载具有curried参数.考虑重新设计这些成员以采用tupled形式的参数

请注意,这曾经在F#1.9.6.2(9月CTP)上完美运行

f# currying visual-studio-2010

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

为什么F#的Seq.sortBy比LINQ的IEnumerable <T> .OrderBy扩展方法慢得多?

我最近编写了一段代码来从文件中读取一些数据,将其存储在元组中,并通过元组的第一个元素对所有收集的数据进行排序.经过一些测试后,我注意到使用Seq.sortBy(和Array.sortBy)比使用IEnumerable.OrderBy慢得多.下面是两段代码,它们应该显示我正在谈论的行为:


(filename
|> File.ReadAllLines
|> Array.Parallel.map(fun ln -> let arr = ln.Split([|' '|], StringSplitOptions.RemoveEmptyEntries) 
                                |> Array.map(double) 
                                |> Array.sort in arr.[0], arr.[1])
).OrderBy(new Func(fun (a,b) -> a))
Run Code Online (Sandbox Code Playgroud)


filename
|> File.ReadAllLines
|> Array.Parallel.map(fun ln -> let arr = ln.Split([|' '|], StringSplitOptions.RemoveEmptyEntries) |> Array.map(double) |> Array.sort in arr.[0], arr.[1])
|> Seq.sortBy(fun (a,_) -> a)
Run Code Online (Sandbox Code Playgroud)

在包含由两个双打组成的100000行的文件上,在我的计算机上,后一版本占用了第一个版本的两倍(如果使用Array.sortBy则不会获得任何改进).想法?

sorting f# inline

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

类似于RapidWeaver的Windows编辑器

在看到使用RapidWeaver的朋友并在几次点击后产生精彩的结果后,我感到很惊讶,并开始搜索是否存在类似于Windows的工具.不幸的是,到目前为止,我的搜索没有产生任何结果,所以我在这里写的是我正在使用的标准,希望有人会提出相关的建议:

  • WYSIWYG HTML编辑器
  • 必须在Windows上运行(嗯!)(Vista/7)
  • 一定不能基于网络(我不关心webapps允许我用蹩脚的模板创建网站)
  • 基于模板(可能有许多模板可用)
  • 非常灵活(没有像Dreamweaver,但我不喜欢只是在一些预建模板中输入文本)
  • UI直观(可能很好看)
  • 生成符合标准的标记(类似办公室的HTML不是一种选择)

这是我关心的:

  • 价格/许可证(如果它是商业的,它可能更适合我的目的,好像工具很好,我会想要快速,优质的支持)
  • 良好的代码编辑功能(当我得到标记的时候,我希望看起来已经非常好了,所以我只需要根据我的要求改进某些区域......)
  • 服务器端脚本(我正在处理,否则,对于这个工具我只关心设计部分)

以下列出了我认为适合我的需求的常用工具:

  • NVU
  • KompoZer首
  • Microsoft Expression Web
  • Microsoft Visual Web Designer
  • Adobe Dreamweaver(很好,但是对我的需求太好了.在这个阶段,我更喜欢更快的东西,即使它意味着质量较低的HTML)

提前感谢您的建议!

user-interface gui-designer editor

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

从F#访问名称中包含.base的名称空间

正如标题所说,我正在尝试使用在名称空间中声明的类,其名称中包含"base".想想以下情况:

open Foo.base.Bar
Run Code Online (Sandbox Code Playgroud)

在C#中,我只是在base之前使用@,但是F#似乎忽略了它,并认为@是用于列表连接的中缀运算符.由于命名空间属于我无法修改的第三方库,有没有办法我仍然可以从F#访问它?

.net f# interop naming-conventions keyword

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

映射Map时Scala不匹配

我正在使用Scala(2.9.1)进行我的第一个有趣的步骤(非hello-world级别),并且我试图理解一个非常无法提供的错误消息.它很像这样:

error: type mismatch;
found   : (Int, Array[InputEntry]) => (Int, Double)
required: (Int, Array[InputEntry]) => ?
entries.groupBy(grouper).map((k: Int, ies: Array[InputEntry]) => (k, doMyStuff(ies)))
Run Code Online (Sandbox Code Playgroud)

正如你可以猜到的,这个片段中的进程应该是某些处理继续进行的,并且它实际上是一个带有签名的定义良好的函数Array[InputEntry] => Double.

相反,石斑鱼的签名是Array[InputEntry] => Int.

我试图提取一个函数并替换lambda但它没用,而且我试图理解错误中的问号...

有任何想法吗?

编辑:我应该澄清一下,InputEntry是我定义的一个类,但是为了这个例子,在我看来它似乎并不相关.

types scala type-inference compiler-errors

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

Socket.io Scala客户端

我正在寻找Scala的socket.io客户端。我深知这个,但我在斯卡拉使用它,因为它不会觉得很自然,也将允许惯用实现的想法畏缩。因此,你们当中有人对我在哪里可以找到Scala客户提出建议吗?

如果是这样,只需提供SBT的代码行和指向该文档的链接就可以了;)

scala websocket socket.io

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

检查另一个进程是否在.NET中具有管理员权限

我正在寻找一种方法来检查远程进程是否具有我(完全托管)代码的管理员权限.可以安全地假设我的代码将以管理员权限运行,因此我并不关心实现我的目标的技术是多么具有侵入性,但是我正在寻找一种必须与XP SP3 x86兼容的完全托管方式从win7 x64开始.

提前致谢!

编辑:为了澄清,我说的是在同一台机器上运行的进程,无论用户是谁启动它.我想确保与进程关联的标识属于Administrators组,或者主线程具有完全权限,特别关注继承提升进程打开的句柄并写入存储而没有任何限制,但应用于进程使用"以管理员身份运行"选项生成.

.net c# windows winapi uac

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

基类上的模式匹配和Scala中的所有派生类

我正在努力实现这样的目标:

def a(b: Any) = {
  b match {
     case x: Seq[String] => println("x")
  }
}

// somewhere else

a(List("b"))
Run Code Online (Sandbox Code Playgroud)

因此,我喜欢看到"x"被打印,而我却不喜欢.

基本上我想匹配一个类型/特征,并覆盖其类型派生自/实现此类型/特征的所有对象,特征是Seq,并且类型参数是事先已知的.因为我是scala新手,所以我很困惑.

想法?

generics types scala pattern-matching

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

在MATLAB中获取给定矩阵索引的元素的最快方法

我有一个N乘2矩阵A我希望从2D矩阵B得到的元素索引,A的每一行都是我想得到的B元素的行和列索引.我想将所有这些元素叠加为N×1向量.

B是方阵,所以我目前正在使用

N = size(B,1);
indices = arrayfun(@(i) A(i,1) + N*(A(i,2)-1), 1:size(A,1));
result = B(indices);
Run Code Online (Sandbox Code Playgroud)

但是,虽然它有效,但这可能是一个巨大的瓶颈,我需要加快代码,以使其有用.

我能以最快的方式获得相同的结果?

performance matlab vectorization

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