草庐IT

【JavaEE】进程和线程

全部标签

c# - 当前进程的性能计数器 CPU 使用率超过 100

我想显示我的多线程应用程序(在多核处理器上工作)的CPU使用情况。我想收到接近任务管理器的号码。但我得到的数字超过100%。甚至超过500%。是的,我知道,对于类别"Process"的计数器"%ProcessorTime"我需要划分为Environment.ProcessorCount或“NumberOfLogicalProcessors”(与我的配置相同)。而500%是此操作之后的结果。我在具有不同硬件(i7、i5、Core2)和软件配置(具有所有更新的Windows7SP1、具有所有更新的Windows2008R2SP1)的不同计算机上测试了这个示例,但遇到了同样的问题。publi

c# - 如何在 Visual Studio 诊断工具窗口中切换进程?

在VisualStudio2017中,我想使用诊断工具窗口来分析我用C#编写的单元测试(x64)。但是它总是显示消息Multipleprocesseshavebeendebugged.Thiswindowonlyshowsdatafortesthost.exe(PID:xxxxx).testhost.exe对我帮助不大,我需要QTAgent.exe。我可以在进程窗口中看到调试器附加到两个进程,QTAgent.exe和testhost.exe。但是我找不到如何在“诊断工具”窗口中切换到QTAgent.exe的方法。你怎么做到的?从testhost.exe分离没有帮助。

c# - 如何在不同的安全上下文中启动线程?

如何在不同用户的安全上下文中启动线程?当进程正常启动线程时,安全上下文也会被传递,但如何使用不同用户的主体在不同的安全上下文中启动线程? 最佳答案 我相信你可以设置CurrentPrincipal作为线程启动后线程代码的第一个操作,然后才开始执行本应与其他主体一起运行的代码。这应该会处理任何基于.NET角色的检查。如果您还需要模拟来调用操作系统,您可以模拟WindowsIdentity。代码(可能有效也可能无效——没有测试):publicvoidRun(objectprincipalObj){if(principalObj==nul

c# - Lazy<T> 是线程安全的惰性加载单例的良好解决方案吗?

我们在get上使用双重锁定实现了一个延迟加载的单例,以确保实例只初始化一次(而不是由于线程竞争条件而初始化两次)。我想知道是否只使用Lazy是解决这个问题的好方法吗?即.privatestaticLazy_instance=newLazy(()=>returnnewMyClass());publicstaticMyClassInstance{get{return_instance.Value;}} 最佳答案 我建议你阅读评论中的引用文章:LazyClassImplementingtheSingletonPatterninC#在所有情

c# - 是否可以将 DLL 从进程内存导出/转储到文件?

首先我知道1.IsitpossibletoexportadlldefinitionfrommyAppDomain?2.Isitpossibletosaveadynamicassemblytodisk?3.HowcanIextractDLLfilefrommemorydump?但这些似乎都没有特别回答我的问题。考虑以下场景:C#应用程序从内存流加载DLL(因此DLL不会直接暴露给用户)。是否有一种工具可以明确允许将该特定DLL以其原始形式从内存转储或导出到磁盘?注意:我希望有人向我展示从C#应用程序的内存转储中提取完整DLL的完整分步过程。 最佳答案

c# - 有助于在 C# 中学习多线程的练习建议

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我想很好地掌握C#中的多线程。我读过一些文章,例如JosephAlbahari'stutorials解释概念,但正如你所知,无论你读了多少书,如果你不练习,大部分内容都会变成垃圾。我需要一些与现实生活实践相关的具有指导性和实用性的代码示例,而不是一些打印一些行的示例。你有什么建议吗?

c# - 如何检测客户端线程何时退出?

这是一个有趣的图书馆作家困境。在我的库中(在我的例子中是EasyNetQ),我正在分配线程本地资源。因此,当客户端创建一个新线程,然后调用我的库中的某些方法时,就会创建新资源。在EasyNetQ的情况下,当客户端在新线程上调用“Publish”时,会创建一个到RabbitMQ服务器的新channel。我希望能够检测到客户端线程何时退出,以便我可以清理资源(channel)。我想出的唯一方法是创建一个新的“观察者”线程,它只会阻塞对客户端线程的Join调用。这里有一个简单的演示:首先是我的“图书馆”。它获取客户端线程,然后创建一个阻塞在“Join”上的新线程:publicclassLib

c# - SQL CLR 中的多线程缓存

是否有任何多线程缓存机制可以在SQLCLR函数中工作而不需要将程序集注册为“不安全”?同样描述了inthispost,简单地使用lock语句将在安全程序集上抛出异常:System.Security.HostProtectionException:AttemptedtoperformanoperationthatwasforbiddenbytheCLRhost.Theprotectedresources(onlyavailablewithfulltrust)were:AllThedemandedresourceswere:Synchronization,ExternalThreading

c# - 监视进程的网络使用情况?

在C#或C/C++和Win32中是否有一种方法可以监视某个进程的网络使用情况(显然您没有构建该应用程序)?我想只监视1个进程大约一个小时,然后返回仅由该进程使用的字节,例如limewire。这可能吗?我知道Windows上的netstat-e会告诉您发送/接收的总字节数,但这是针对所有进程的。编辑:如果我不能只返回一个进程使用情况,我如何才能获得整个系统发送/接收的字节数?正如netstat显示的那样,除了我只想要整数。例如:netstat-eReceivedSentBytes21115689261133174989Unicastpackets30164802711006Non-uni

c# - 如何在单独的线程上运行 Converter 内的代码,以便 UI 不卡住?

我有一个很慢的WPF转换器(计算、在线获取等)。我怎样才能异步转换,这样我的UI就不会卡住?我找到了这个,但解决方案是将转换器代码放在属性中-http://social.msdn.microsoft.com/Forums/pl-PL/wpf/thread/50d288a2-eadc-4ed6-a9d3-6e249036cb71-我宁愿不这样做。下面是一个演示问题的示例。此处下拉菜单将卡住,直到Sleep结束。namespacetestAsync{usingSystem;usingSystem.Collections.Generic;usingSystem.Threading;using