Tag: .net

ThreadPool最大线程

我在.NET的ThreadPool(.NET 4)上遇到了一些麻烦。 我已经读过默认情况下.NET每个处理器有25个线程的限制,但根据SO和其他地方的论坛post,我可以用下面的代码增加限制。 void SetThreads(int threads) { ThreadPool.SetMaxThreads(threads, threads); ThreadPool.SetMinThreads(threads, threads); } 但是,当我将上面的内容设置为某个任意高的数字(例如2000)和队列~1000个项目时,我仍然只运行~33个线程(.NET CLR需要约5个线程),而ThreadPool.GetAvailableThreads()返回1971剩下的线程。 为什么上面的代码不起作用?

如何在使用任务时使用上一个任务的结果继续使用另一个函数?

我有WCF连接器,应该为我获取一些少量数据,通常需要20秒才能获得每个项目的数据(这很好)。 我想使用Task为我获取数据,然后使用此任务中的值添加WinForm控件。 我已经创建了包含这些数据的对象列表。 首先使用Task作为更新列表的任务,我希望在完成第一个Task创建控件后立即执行Task。 这是到目前为止的代码: List ipVersionCounters = new List(); Task task = Task.Factory.StartNew(() => { foreach (var sitein settings.Sites) { string ip = site.ip; string version = “undefined”; using (WcfConnector wcfConnector = WcfConnector.CreateConnectorWithoutException((ip))) { if (wcfConnector != null) { version= string.Format(“{0} {1} {2}”, wcfConnector.VersionController.GetBranchName(), wcfConnector.VersionController.GetBuildNumber(), wcfConnector.VersionController.GetCurrentVersion()); } } counter++; ipVersionCounters.Add(new IpVersionCounter { Ip = […]

多语种wpf应用程序

我有一个WPF应用程序(英文),我想让用户选择不同的语言。 我已经阅读了一些在运行时应用程序中更改语言的可能性,但我只想在安装时选择一种语言,而不是更改它。 您认为最快最容易的方法是开发不同版本的程序(仅更改文本语言)并让用户在安装过程中选择其中一个版本吗? 可能重复代码只更改文本框或标签不是很优雅,但请注意我的应用程序用英语完成,我不需要在运行时更改语言。

使用GetType()和typeof()获取Type有什么区别?

可能重复: 类型检查:typeof,GetType还是? 哪一种是获得该类型的首选方式?

从Entity Framework 6 Model中分离POCO Object类和DBContext

我开始使用Entity Framework 6.0.1版本。 我想将生成的DbContext和POCO模板类与模型中的不同类库分开。 我花了几个小时解决问题但没有成功。 如果我创建一个新的类库,添加EF 6 EntityObject Generator并填充以下模板变量: SourceCsdlPath = @”..\..\DataAccess\Model.edmx” , 构建后在错误列表中获取以下错误: 错误2运行转换:System.IO.FileNotFoundException:无法找到文件文件名:’C:\ Source \ EFsource \ POCO …. \ DataAccess \ SZOSZRDBModel.edmx’ 服务器堆栈跟踪:位于System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md,Object [] args,Object server,Object []和outArgs)的Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolvePath(String path)在System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg) 在[0]处重新抛出exception:位于Microsoft.VisualStudio的System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)的System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)。 TextTemplating.ITextTemplatingEngineHost.ResolvePath在Microsoft.VisualStudio.TextTemplating31479401930D2C4820ACF71C66B5389A24A5053726798D9718DB676B3FFA30A3454B3CB1EDE2E1C267D5278B1528860C072E81A0E4647BC23993669604048FCD.GeneratedTextTransformation.ApplyUserSettings(userSettings userSettings)(字符串路径)在Microsoft.VisualStudio.TextTemplating31479401930D2C4820ACF71C66B5389A24A5053726798D9718DB676B3FFA30A3454B3CB1EDE2E1C267D5278B1528860C072E81A0E4647BC23993669604048FCD.GeneratedTextTransformation.TransformText() 错误消息是明确的,但我不知道,如何设置模型路径没有完整的绝对路径。 我不确定,使用最新版本的entity framework是最好的主意……

如何为字符串格式提供自定义字符串占位符

我有一个字符串 string str =”Enter {0} patient name”; 我正在使用string.format来格式化它。 String.Format(str, “Hello”); 现在,如果我想要从某些配置中检索患者,那么我需要将str更改为”Enter {0} {1} name” 。 因此它将用第二个值替换{1}。 问题是我想要{1}而不是{1}其他格式的东西,比如{pat} 。 但是当我尝试使用时,它会抛出一个错误。 我想要一种不同格式的原因是我需要改变很多文件(可能包含{0},{1}等)。 所以我需要一个可以在运行时替换的自定义占位符。

是否有Visual Studio的Breakpoint插件?

背景 在一些足够大的应用程序中,您可以花更多的时间来确定如何深入到各个层,而不是实际调试:我现在正在使用的一个软件就是这种情况。 除了关注问题的布局/分离之外,最好有一个断点插件,允许您根据正在处理的Bugzilla / Jira / Fogbugz / SVN缺陷条目加载断点。 题 是否存在Visual Studio的任何插件,允许您将切换的断点“保存”到文件中,允许您根据正在处理的错误加载各种断点? 作为该问题的附属物; 如果没有任何这样的插件,有人能指出我为Visual Studio创建插件的’好’(非常主观的术语,但在这种情况下,我的意思是解释性和有用的)资源?

C#List .ToArray表现不好?

我正在使用.Net 3.5(C#),我听说过C# List.ToArray的性能List.ToArray是“坏”,因为它为所有元素的内存副本形成一个新数组。 真的吗?

SQLite简单的插入查询

我正在尝试使用SQLite作为我的存储空间。 我已经使用nuget和using语句添加了引用dll。 我有 private void SetConnection() { sql_con = new SQLiteConnection (“Data Source=c:\\Dev\\MYApp.sqlite;Version=3;New=False;Compress=True;”); } private void ExecuteQuery(string txtQuery) { SetConnection(); sql_con.Open(); sql_cmd = sql_con.CreateCommand(); sql_cmd.CommandText = txtQuery; sql_cmd.ExecuteNonQuery(); sql_con.Close(); } 我正在发送这样的查询文本 public void Create(Book book) { string txtSqlQuery = “INSERT INTO Book (Id, Title, Language, PublicationDate, Publisher, Edition, OfficialUrl, Description, EBookFormat) “; txtSqlQuery += string.Format(“VALUES […]

.net 4.5中的异步和同步之间的区别

在我阅读.Net 4.5 async异步编程和await关键字时,我在这里阅读以下段落 处理异步请求 在启动时看到大量并发请求或具有突发性负载(并发性突然增加)的Web应用程序中,使这些Web服务调用异步将提高应用程序的响应能力。 异步请求与同步请求相同的处理时间。 例如,如果请求进行需要两秒钟完成的Web服务调用,则无论是同步执行还是异步执行,请求都需要两秒钟 。 但是,在异步调用期间,在等待第一个请求完成时,不阻止线程响应其他请求。 因此,当有许多并发请求调用长时间运行的操作时,异步请求会阻止请求排队和线程池增长。 对于粗体字,我无法理解它们异步请求如何处理同步请求需要相同的时间? 例如: public async Task MyMethod() { Task longRunningTask = LongRunningOperation(); //indeed you can do independent to the int result work here //and now we call await on the task int result = await longRunningTask; //use the result Console.WriteLine(result); } public async Task LongRunningOperation() // […]