小编Kav*_*ian的帖子

C#5.0中捕获的闭包(循环变量)

这在C#5.0中正常工作(按预期方式):

var actions = new List<Action>();
foreach (var i in Enumerable.Range(0, 10))
{
    actions.Add(() => Console.WriteLine(i));
}
foreach (var act in actions) act();
Run Code Online (Sandbox Code Playgroud)

打印0到9.但是这个显示10次10​​次:

var actions = new List<Action>();
for (var i = 0; i < 10; i++)
{
    actions.Add(() => Console.WriteLine(i));
}
foreach (var act in actions) act();
Run Code Online (Sandbox Code Playgroud)

问题:这是我们在5.0之前的C#版本中遇到的问题; 所以我们不得不使用一个循环局部占位符来进行闭包,它现在已经修复了 - 在C#5.0中 - 在"foreach"循环中.但不是"for"循环!

这背后的原因是什么(也没有解决for循环问题)?

c# foreach closures for-loop c#-5.0

46
推荐指数
1
解决办法
5219
查看次数

使用Apache部署Go Web应用程序

我找不到用于部署Go Web应用程序的mod_go.有没有其他方法可以在Go中使用Apache Web服务器(甚至是IIS)运行Web应用程序?

更新:现在做了近一年的全职工作; 这样做(Go with Apache)使Go的目的无效(高度并发的性能).我正在使用nginx作为http/https的反向代理,并且很好地支持我的Go后端.虽然在使用Go时你必须在webapps上改变一下你的心态.

apache deployment cgi go web-deployment

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

TaskCreationOptions.LongRunning选项和ThreadPool

TPL使用任务计划程序来协调任务.根据官方文档,默认任务调度程序使用线程池,但如果显示TaskCreationOptions.LongRunning选项,则它将为该任务创建专用线程(A).

问题:截至目前,Visual Studio 2010的MSDN文档尚未就绪,当前的在线MSDN尚未最终确定; 有谁知道(A)是真还是假?

c# scheduled-tasks .net-4.0 threadpool task-parallel-library

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

使用NLog作为翻转文件记录器

如何 - 如果可能 - 我可以使用NLog作为翻转文件记录器吗?仿佛:

我希望31天内最多可以有31个文件,当新的一天开始时,如果有一个旧日志文件##.log,那么它应该被删除但是在那一天所有的日志都被附加并且至少会在那里为期27天.

.net c# nlog

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

在TypeScript中键入声明顺序

TypeScript对类型声明的顺序敏感吗?

更改类型的顺序会导致Angular 2(beta.0)中的错误,其中(AFAIK)是使用TypeScript本身实现的(这就是为什么这个错误看起来如此奇怪且与我无关):

angular2-polyfills.js:138 Error: Cannot read property 'prototype' of undefined(…)

假设我们有一个文件t1.ts:

export class AuthResponse extends JsonResponse { }
export class JsonResponse {
    public code: ResultCode;
}
export enum ResultCode { }
Run Code Online (Sandbox Code Playgroud)

启动应用程序时,我们会在客户端看到上述错误.但是如果我们在这个文件中颠倒声明的顺序,那么错误就会消失(只是为了记录,目前我正在向前推进,记住它并且它有效).

要重现此错误,我们还需要五个文件:

t2.ts:

import {AuthResponse, JsonResponse, ResultCode} from './t1'; // this order?

export class DummyAction {
    doSomething() {
        console.log('test, starting ...');

        var v = new AuthResponse();
        return v;
    }
}
Run Code Online (Sandbox Code Playgroud)

app.component.ts:

import {Component, OnInit} from 'angular2/core';
import {DummyAction} from './components/t2';            

@Component({      
    selector: 'root-app',
    templateUrl: …
Run Code Online (Sandbox Code Playgroud)

typescript

18
推荐指数
2
解决办法
2405
查看次数

从Go中的标准输入读取一个字符(不按Enter键)

我想要我的应用节目:

press any key to exit ...

当我按任意键时,它会退出.

我怎样才能做到这一点?

注意:我用谷歌搜索了但是我发现的所有内容都需要在最后输入.我想要像Console.ReadKey()C#中的东西.

我正在运行MS Windows.

stdin go

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

检测键盘挂钩

有没有办法检测哪些程序或模块正在监听键盘钩子?通过Sysinternals可能吗?

windows security keyboard hook windows-vista

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

使用OpenCV进行头部(和肩部)检测

(如果我问的是一个太吵闹的问题,请提前使用.我是OpenCV的初学者.我已经完成了一些教程,但我还没有很好地掌握它的概念.)

问题:如何使用OpenCV进行头部检测(不是面部检测) - 例如在公共汽车或房间内的照片中?

注意:我不想做面部检测; 只是检测头发以确定照片中的人数.不幸的是 - 对我来说 - 我发现的那些教程和文档都是关于人脸检测而不是头部检测.

谢谢

opencv

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

人数统计系统

我想使用OpenCV(或Emgu CV)开发一个"人数统计系统".

请指导我如何实现或引导我一些示例或开源项目.

(我做了一些工作:提取差异然后阈值删除背景,使用运动历史等等;仍然没有好结果.)

编辑1:我正在计算一个高人流量(其中十几个可能同时出现).

编辑2:必须至少80%准确.人们走过一扇近5米宽的门.问题是我无法控制相机的位置或角度.相机在距离10米处高度2.5米的地方喊叫.

谢谢

c# opencv video-processing emgucv

13
推荐指数
2
解决办法
8514
查看次数

MongoDB C#驱动程序和线程安全

在该文件MongoClient,MongoServer,MongoDatabaseMongoCollection<T>我看到它说,他们是线程安全的.

问题:这是否意味着我可以在类中拥有(例如)静态字段并从任何Task/中访问它们Thread

喜欢:

public static MongoClient Client = new MongoClient(Properties.Settings.Default.MongoConnStr);
public static MongoServer Server = Client.GetServer();
public static MongoDatabase DraftDB = Server.GetDatabase("draftdb");
public static MongoCollection<MyDoc> Docs = Program.DraftDB.GetCollection<Location>("mydocs");
Run Code Online (Sandbox Code Playgroud)

特别关于MongoCollection<T>; 我想确保某些东西var cursor = Docs.Find(query).SetLimit(50);不会在MongoCollection<T>(它的静态状态是精确的)上执行变异.

c# thread-safety mongodb nosql mongodb-.net-driver

13
推荐指数
1
解决办法
4803
查看次数