我被要求用AI帮助XNA项目.我不是全新的概念(寻路,植绒等),但这将是第一个"真正的"代码.我非常感谢任何资源(链接或书籍); 我想确保我做对了.
今天我尝试做一些优化foreach
声明,这可以继续XDocument
.
优化前:
foreach (XElement elem in xDoc.Descendants("APSEvent").ToList())
{
//some operations
}
Run Code Online (Sandbox Code Playgroud)
优化后:
Parallel.ForEach(xDoc.Descendants("APSEvent").ToList(), elem =>
{
//same operations
});
Run Code Online (Sandbox Code Playgroud)
我看到.NET Parallel.ForEach(...)
只打开一个线程!结果,时间跨度Parallel
大于标准foreach
.
为什么你认为.NET只开了1个线程?因为锁定文件?谢谢
对于ASP.Net应用程序部署,您在machine.config中存储了哪些类型的信息(如果有)?
如果您不使用它,您如何管理可能针对每个环境更改的特定于环境的配置设置?
我正在寻找一些"最佳实践"以及每种方法的好处/陷阱.我们即将在两个月内将一个全新的应用程序部署到生产中,我在这些类型的决策中有一定的自由度.我想确保我以尽可能最好的方式接近事物,并试图避免以后在脚下射击自己.
仅供参考我们目前正在使用它(machine.config)来获取数据库连接信息并存储可能在数据库中的配置表中更改的所有其他变量.
我是MEF的新手,我正在尝试使用它来构建一个插件系统,但我仍然坚持第一步.
我正在关注Andrew Whitechapel的一篇文章.我已经下载了他的示例代码并运行正常(如果你删除了一个"导出"程序集 - 它们在他的示例中是互斥的 - 并引用了MEF程序集).
该示例说明了导入单个零件.我想导入多个部分(全部基于相同的界面).所以,我更改示例代码如下:
[Import]
// OLD - public Interface.ICalculate Calculate { get; set; }
public IEnumerable<Interface.ICalculate> Calculators { get; set; }
// OLD - Console.WriteLine(
// OLD - String.Format("{0}", Calculate.Circumference(4)));
foreach (Interface.ICalculate calculator in Calculators)
{
Console.WriteLine(
String.Format("{0}", calculator.Circumference(4)));
}
Run Code Online (Sandbox Code Playgroud)
我还为IEnumerable导入了System.Collections.Generic.
关键变化是第一个.据我了解,这将允许我从多个组件导入零件.但是,我收到以下错误:
No valid exports were found that match the constraint
Run Code Online (Sandbox Code Playgroud)
此时我甚至没有添加多个"插件"程序集.仍然只有一个.
为了完整性,这里是他的"插件"类库中的导出定义(我没有触及):
[Export(typeof(Interface.ICalculate))]
public class Calculate : Interface.ICalculate
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我在这里挠头.我搜索了SO和MEF论坛,但可以找到任何启发我的东西.
我正在使用VS 2008 SP1(未安装2010 beta)和最新的System.ComponentModel.Composition程序集(2009.26.8.0).
我注意到与SO上的客户端脚本相关的大多数问题都与jQuery相关,这让我思考.我想知道这些库对JavaScript和DOM的实际知识有多么简单.
为您做了很多事情,我担心有越来越多的Web开发人员除了如何包含jQuery库并使用他们下载的插件外,实际上对JavaScript知之甚少.这是软件开发的"快餐"方法,基于轶事证据,我认为很多网络"开发人员"在客户端脚本中如果突然无法使用jQuery库就会陷入困境.
我的问题:这些库是否有助于或损害客户端脚本的真正知识?