草庐IT

可用cpu

全部标签

c# - CPU 未充分利用。由于阻塞 I/O?

我正在尝试找出未充分利用CPU的C#服务器应用程序的瓶颈所在。我认为这可能是由于磁盘I/O性能不佳造成的,与应用程序本身无关,但我无法从这个假设中得出事实。应用程序从本地MSMQ队列读取消息,对每条消息进行一些处理,并在处理完消息后,将响应消息发送到另一个本地MSMQ队列。我正在使用异步循环从队列中读取消息,尽可能快地将它们从队列中取出并使用Task.Run调度它们进行处理以启动每个消息的处理(并且不要在此Task.Run上等待..只是附加一个延续只会在它上面出错以记录错误)。每条消息都是并发处理的,即无需等待消息完全处理后再处理下一条消息。在消息处理结束时,我正在使用MessageQ

c# - WCF - 让客户端检查服务可用性

这个问题在这里已经有了答案:checktheavailabilityoftheWCFWebService(4个答案)关闭8年前。我有一个客户端-服务器系统,双方都是我写的,我想在服务器断开连接/死机时将客户端置于“离线”状态,然后在服务器断开连接/死机时自动将它们恢复为“在线”状态再次可用。对于第一部分,我监听channel故障事件并通过将客户端设置为离线来处理该事件。然后我开始在服务器上调用“ping”服务(每30秒一次),如果它处于事件状态,它只会返回一个bool值。一旦它还活着,客户端就会得到bool并切换回在线状态。一切正常,我遇到的问题是当客户端调用ping服务并且服务器关闭

c# - 如何限制 C# 程序占用的 CPU 使用率?

我正在开发一个C#程序,我有一个函数消耗太多CPU。我想知道一种通过代码(不使用任何外部应用程序)控制它并限制CPU使用率的方法。例如,如果它使用了90%的CPU使用率,即使它变得更慢,也要使我的应用仅消耗20%。它必须在应用程序内自动完成。如果您提供类(class),那就太棒了。 最佳答案 我不知道你是否可以这样做,但你可以通过Priority更改执行线程的线程优先级属性(property)。您可以通过以下方式设置:Thread.CurrentThread.Priority=ThreadPriority.Lowest;另外,我不认

c# - 更多的 CPU/核心是否有助于缩短 VS.NET 的构建时间?

我想知道是否有人知道VisualStudio.NET是否有并行构建过程?我有一个包含很多项目的解决方案,每个项目都有很多标记/代码、很多类型等。只需坐在那里使用intellisense就可以运行大约700MB。但是构建时间真的很慢,而且似乎只用完了我的两个cpu核心之一。这是否意味着构建过程是单线程的?我的解决方案的构建依赖链不是线性的,所以我不明白为什么它不能并行构建一些项目。我记得JoelSpolsky在博客中介绍了他的新SSD,以及它如何对编译时间没有帮助,但他没有提到他使用的是哪个编译器。我们正在使用VS2005。任何人都知道它是如何编译的?2008/2010有什么不同/更好吗

c# - 如何使 DockPanel 中的项目扩展以适应 WPF 中的所有可用空间?

我有一个StackPanel包含一个StackPanel和一些其他项目。第一个StackPanel是垂直方向,里面的是水平方向。内部有一个TreeView和一个ListView,我希望它们展开并适合窗口的宽度,我由窗口设置并允许用户更改.我还希望外部StackPanel适合窗口的高度。我该怎么做?编辑:我已经转换为使用DockPanel,并在每个元素中正确设置了DockPanel.Dock属性,并禁用了LastChildFill在两个停靠面板中,布局仍然没有拉伸(stretch)。代码: 最佳答案 改用DockPanel。Stack

c# - 在 C# 中获取当前 CPU 使用率

我想在我的项目中获得当前的CPU利用率namespaceMonitoring_Tool{publicpartialclassajaxExecute:System.Web.UI.Page{privatePerformanceCountertheCPUCounter=newPerformanceCounter("Processor","%ProcessorTime","_Total");privatePerformanceCountertheMemCounter=newPerformanceCounter("Memory","AvailableMBytes");protectedvoidP

c# - 如何使用 C# 代码获取可用 SQL Server 的列表?

我已经创建了一个桌面应用程序。在应用程序启动时,我想显示本地PC上所有可用SQLServer实例的列表,并允许选择要连接的SQLServer名称。有没有办法获取本地PC上可用的所有SQLServer实例名称的列表?非常感谢。 最佳答案 stringmyServer=Environment.MachineName;DataTableservers=SqlDataSourceEnumerator.Instance.GetDataSources();for(inti=0;i 关于c#-如何使用

c# - 如何设置程序的CPU亲和性?

我有一个用C#编写的程序,我正在使用VSTS2008+.Net3.5+WindowsVistaEnterprisex86开发Windows窗体应用程序。我目前的电脑是双核CPU,我想将我的程序的CPUaffinity设置为在特定CPU上运行,并释放另一个CPU来做一些其他工作。任何想法如何做到这一点?通过编码或配置都可以。背景是,我的程序是CPU密集型的,所以我不想让它占用我电脑上所有的两个CPU资源,我想释放一个CPU,这样我就可以同时快速浏览网络。:-)提前致谢,乔治 最佳答案 转到任务管理器->进程标签。寻找你的计划。右键单击

c# - 等待 TcpClient 数据可用的最佳方式?

while(TcpClient.Client.Available==0){Thread.Sleep(5);}有更好的方法吗? 最佳答案 当然!只需在流上调用Read(...)即可。这将阻塞直到数据可用。除非您真的必须直接使用TcpClient,否则我通常会尽可能多地在流上进行操作。如果您想使用套接字,只需调用Receive(byte[])它将阻塞直到数据可用(或套接字关闭)。现在如果不想阻塞,可以使用Stream.BeginRead或Socket.BeginReceive异步工作。(或从.NET4.5开始的ReadAsync。)我个

c# - 限制进程的CPU使用率

我有一项服务正在运行,它会定期检查文件夹中的文件,然后对其进行处理。(读取它,提取数据,存入sql)所以我在测试盒上运行了它,它花费的时间比预期的要长一点。该文件有160万行,6小时后仍在运行(然后我回家了)。问题是它运行的机器现在完全瘫痪了——远程桌面超时所以我什至不能在它上面停止进程,或者附加一个调试器来查看有多远等等。它稳定地使用90%以上的CPU,并且所有其他正在运行的服务或应用程序都受到影响。代码是(凭内存,可能无法编译):Listitems=newList();using(StreamReadersr=fileInfo.OpenText()){while(!sr.EndOf