小编Joe*_*orn的帖子

C#2.0线程问题(匿名方法)

我有一个简单的应用程序与以下代码:

   FileInfo[] files = (new DirectoryInfo(initialDirectory)).GetFiles();
   List<Thread> threads = new List<Thread>(files.Length);

   foreach (FileInfo f in files)
   {
       Thread t = new Thread(delegate()
       {
            Console.WriteLine(f.FullName);
       });
       threads.Add(t);
   }

   foreach (Thread t in threads)
       t.Start();
Run Code Online (Sandbox Code Playgroud)

让我们说在'I = initialDirectory'目录中我有3个文件.然后,该应用程序应创建3个线程,每个线程打印一个文件名; 但是,每个线程将打印出'files'数组中最后一个文件的名称.

为什么是这样?为什么当前文件'f'变量无法正确设置匿名方法?

c# multithreading anonymous-methods .net-2.0

12
推荐指数
2
解决办法
5679
查看次数

学习linux shell脚本是多么有用/困难?替代建议?

我迫切需要一些建议.

作为CS专业,我差不多完成了大三.我有点觉得自己是一个后来者,因为直到二年级才开始进入计算机科学......通过努力工作,一年中有很多学分和暑期学校,我几乎赶上了同龄人,但是这里来了忧虑:

我的所有学校工作都教会了我很多关于计算机科学的知识,但很少关于实际编程.虽然我有很多动力,但我几乎没有空闲时间让我接受侧面项目.这让我感到不安,原因有两个,1)我真的对这个领域充满热情; 2)我知道很多雇主都喜欢看到在校外有经验的学生.

所以我最近有一个想法:如果我将Linux作为我的主要操作系统,但尽可能地限制自己到终端,试图自然地(在谷歌的帮助下)熟悉命令行,并希望逐渐恢复shell脚本使用在线教程.

你认为这对有抱负的程序员有多大帮助?它有多现实?对于小型项目,您还有其他建议吗?几乎没有空闲时间的学生可以在校外接听吗?

非常感谢,我喜欢这个网站(和播客),并将感谢任何反馈.

linux shell

12
推荐指数
2
解决办法
9776
查看次数

限制于接口的通用参数与仅使用接口之间的区别

这有什么区别:

void MyMethod(IMyInterface value)
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

还有这个:

void MyMethod<T>(T value) where T : IMyInterface
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

.net generics interface

12
推荐指数
2
解决办法
782
查看次数

SQL 2008中的Wide和Nonwide表有什么区别?

我在MSDN上看这个页面:

SQL Server 2008的最大容量规范

它说如下:

每个"非
宽"表的最大列数:每个"宽"表1,024个最大列:30,000

但是我无法找到有关SQL 2008中"宽"和"非宽"表之间差异的任何信息.如果我想定义一个"宽"表,我该怎么做?

sql-server sql-server-2008

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

"编组"一词的精确定义

在.NET世界中,编组是指仅通过某个边界或通过线路传输的对象/数据的准备,还是指跨边界或线路的准备和传输.

什么可以组织一个电话意味着什么.它是否仅仅意味着在上下文边界上"转移"调用的包装,还是包含和发送(即调用)调用?

很抱歉是个坚持者......

克拉里

.net marshalling

12
推荐指数
1
解决办法
560
查看次数

什么时候API过度设计?

我鄙视使用过度设计的API,这些API并不简单.尽管如此,我正在为一个开源库设计一个API,我开始觉得我陷入了过度工程陷阱.我当然无法确定,因为当然,我写了一些令人讨厌的东西,所以它的工作原理对我来说比其他任何人都更明显.从开发人员的角度来看,您的API可能过度设计有哪些警告信号?

api project-management api-design

12
推荐指数
3
解决办法
1638
查看次数

CSharpCodeProvider似乎陷入了.NET 2.0,我如何获得新功能?

我有以下,相当标准的代码作为包装CSharpCodeProvider.这个类运行得很好,执行得很好,等等.但是,尽管我的应用程序是针对.NET 3.5构建的,并且在进行此编译时引用了v3.5程序集,但我仍然无法访问任何更好的C#3.5语法,如lambda或auto-properties.有没有办法让这个工作?

我的印象是这个课程刚刚开始csc.exe,我的防火墙似乎已经证实了这个想法(我的应用程序试图访问csc.exe).也许我只需要设置options.CompilerOptions一些东西?

protected virtual void Compile()
{
    Microsoft.CSharp.CSharpCodeProvider csProvider = new Microsoft.CSharp.CSharpCodeProvider();

    CompilerParameters options = new CompilerParameters();
    options.GenerateExecutable = false;
    options.GenerateInMemory = true;
    options.IncludeDebugInformation = true;

    foreach (string s in this.ReferencedAssemblies)
    {
        options.ReferencedAssemblies.Add(s);
    }

    CompilerResults result;
    string source = this.CodeTemplate;

    // [snip] Do some manipulation to fill in the template with values.

    result = csProvider.CompileAssemblyFromSource(options, source);

    this.HasErrors = result.Errors.HasErrors;
    this.Errors = new CompilerError[result.Errors.Count];
    result.Errors.CopyTo(Errors, 0);

    if (HasErrors && ThrowOnErrors)
        throw new …
Run Code Online (Sandbox Code Playgroud)

c#

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

在UPDATE中使用IF..ELSE(SQL Server 2005和/或ACCESS 2007)

我需要设置如下的查询:

UPDATE XXXXXX
IF column A = 1 then set column B = 'Y' 
ELSE IF column A = 2 then set column C = 'Y' 
ELSE IF column A = 3 then set column D = 'Y' 
Run Code Online (Sandbox Code Playgroud)

等等等等...

我能够使用多个查询来执行此操作,但我想知道,如果我只能在1个语句中执行此操作.

sql-server-2005

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

单个开发人员可以从Scrum中学到什么?

假设开发人员有兴趣学习Scrum,但团队中没有其他人感兴趣.我意识到Scrum是为团队制作的,并且必须修改该过程以适合单个人.

开发人员尝试使用Scrum是否有任何好处,即使团队没有?如果是这样,如何修改流程以适应这种情况?

agile scrum

12
推荐指数
1
解决办法
2192
查看次数

在SQL Server中舍入到最接近的5

我的SQL Server 2008表中有一个Money列.在我的下面查询中,如何将其舍入到最接近的5 $

select FineAmount from tickets
Run Code Online (Sandbox Code Playgroud)

谢谢

sql-server-2008

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