Tag: C#的

C#线程不会睡觉?

我有这个代码: void Main() { System.Timers.Timer t = new System.Timers.Timer (1000); t.Enabled=true; t.Elapsed+= (sender, args) =>c(); Console.ReadLine(); } int h=0; public void c() { h++; new Thread(() => doWork(h)).Start(); } public void doWork(int h) { Thread.Sleep(3000); h.Dump(); } 我想知道如果间隔为1000毫秒,作业进程为3000毫秒,会发生什么情况。 不过,我看到一个奇怪的行为 – 3000毫秒的延迟只发生在一开始 ! 我怎样才能使每个工作睡眠3000毫秒? 正如你在这里看到的,一开始有3秒的延迟,然后每次迭代1秒。

如何创build一个通用的扩展方法?

我想开发一个通用扩展方法,它应该按字母顺序排列string,然后按照纵向升序排列。 我的意思是 string[] names = { "Jon", "Marc", "Joel", "Thomas", "Copsey","Konrad","Andrew","Brian","Bill"}; var query = names.OrderBy(a => a.Length).ThenBy(a => a); 什么是开发通用扩展方法? 我试过了 : public static class ExtensionOperation { public static T[] AlphaLengthWise<T>(this T[] names) { var query = names.OrderBy(a => a.Length).ThenBy(a => a); return query; } } 我收到了 : 错误1:T不包含长度的定义 错误2:不能将System.Linq.IOrderedEnumerable转换为T[] 。

C预处理器:将int连接到string

我想弄清楚如何使用C预处理器将# #define int连接到# #definestring。 我的编译器是CentOS 5上的GCC 4.1。该解决scheme也适用于MinGW。 我想追加一个版本号到一个string,但唯一的办法就是让版本号的副本定义为string。 我能find的最接近的是一个引用macros参数的方法,但是它不适用于#define 这是行不通的。 #define MAJOR_VER 2 #define MINOR_VER 6 #define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER 它不工作没有#因为值是数字,它会扩大到"/home/user/.myapp" 2 6 ,这是无效的C。 这是行得通的,但我不喜欢拷贝版本定义,因为我确实需要它们作为数字。 #define MAJOR_VER 2 #define MINOR_VER 6 #define MAJOR_VER_STR "2" #define MINOR_VER_STR "6" #define MY_FILE "/home/user/.myapp" MAJOR_VER_STRING MINOR_VER_STRING

如何在Entity Framework 4 Entitydesigner中正确设置两个对象之间的关联?

对于一个新项目,我试图先创build我的业务类,然后创build真正的数据库表。 因此我正在使用entity framework4devise器。 创build了一个新的“ADO.Net实体数据模型”文件,扩展名为.edmx。 我创build了两个实体: 我想在Product – > Group之间添加一个1到nc的关系。 如果我已经创build了MSSQL数据库,我会添加一个列IDGroup到表产品和引用Product.IDGroup到Group.IDGroup。 据我所看到的,如果我将一个名为IDGroup的新属性添加到Product Entity中,我不能在devise器中添加这样的关联 这是我如何添加映射: 其结果是: 现在是这个问题的一部分:如果我从现有的MSSQL数据库添加两个表到edmx文件,我会得到编译错误: Error 3027: No mapping specified for the following EntitySet/AssociationSet – GroupSet, ProductSet 这个错误意味着什么,我该怎么办才能解决这个问题? 如果我删除这两个表格,我会收到警告: Error 2062: No mapping specified for instances of the EntitySet and AssociationSet in the EntityContainer myContainer. 有些东西告诉我,我做这一切都是错误的,这只是基本的东西。 我怎样才能做到这一点?

在Visual Studio 2012中的纯C#编辑器(没有智能感知,没有缩进,没有代码高亮)

我刚刚在我的机器上安装了visual studio 2012,之前我已经卸载了visual studio 2012 RC。 安装是成功的,但是当我打开一个项目后,C#编辑器不能正常工作,就像这样的纯文本编辑器: 我试图修复它,彻底卸载它,然后再次安装,但没有成功。 任何人有一个想法? 我不知道它是否是相关的,但是当创build一个新的项目或打开一个现有的项目时,我也会遇到这个错误: 提前致谢

C中的exit(0)和exit(1)有什么区别?

谁能告诉我? C语言中exit(0)和exit(1)什么区别?

无法使用visual studio 2013debugging托pipe代码(“无法评估expression式”错误 – 我正在使用debugging版本)(请注意VS 2012的工作原理)

我有.net应用程序(GUI以及PowerShell)对4.5。 我的操作系统是2012年的服务器。当我将我的应用程序附加到2013 visual studio,debugging器有时不工作。 它不评估expression式或显示当地人(也观察窗口/立即窗口没有什么作用 – 就好像该项目是build立在发布)。 但是我用“debugging”configuration来构build。 正如前面提到过的那样,当我简单地附上VS 2012(是的,我有2k13和2k12 SXS) 请注意,如果我使用相同的设置(托pipedebugging)将相同的进程附加到Visual Studio 2012,它始终可以正常工作。 我确定符号被加载(通过在Visual Studio +debugging+窗口检查模块选项卡),中断点击中。 任何想法可能是什么问题? 所有的更新都是最新的。 它的一种恼人的启动VS 2012只是debugging,当我使用VS 2k13 IDE进行开发。 问候!

C#相当于C ++vector,具有连续内存?

C ++相当于C ++vector的是什么? 我正在寻找这个function: 要有一个连续存储的内存dynamic数组,没有访问与标准数组的性能损失。 我正在search,他们说.NET equivalent to the vector in C++ is the ArrayList ,所以: ArrayList是否具有连续的内存function?

没有ASP.NET页面的ResolveUrl

我正在寻找一种方法来解决您的页面或控件实例( MSDN文档 )的方式相对的url,如: Page.ResolveUrl("~/common/Error.aspx"); …但是当我只有一个HttpContext可用于我,如当我在一个HttpHandler。 我是否需要使用自定义函数,比如这里看到的函数? 或者是有一种方法来获得页面使用的基础function。

剃刀2剃刀3 MVC 5

我一直在做一个MVC 4解决scheme,我一直在试图升级到MVC 5.我已经按照这里列出的步骤。 我跟着它,现在每当我运行MVC应用程序,它给了我这个错误消息: [A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to [B]System.Web.WebPages.Razor.Configuration.HostSection. Type A originates from 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'. Type B originates from 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\Users\User\AppData\Local\Temp\Temporary ASP.NET Files\root\665ac028\de53a189\assembly\dl3\c2c0a4b5\56e8099e_40e0ce01\System.Web.WebPages.Razor.dll'. 有谁知道这可能是怎么产生的? 或者如何解决? 我到目前为止环顾四周? 我试着改变web.config文件,没有用…