早上和Anakin一起讨论昨天的问题,虽没结果,但从他那里学到了怎么查看线程。
下一步要解决的问题,processThread 和 thread的 区别是什么!

问题解决了.
    昨天的问题在 Process.GetCurrentProcess().Threads[0].UserProcessorTime 中的Threads[0]是不是当前进程。当然,结果是

不一定。在VS2005的IDE中可以发现当前的thread有11个,Threads[0]不是当前线程。那么关键问题就是怎么获取当前线程。
    processThread类中只有属性ID,而Thread的属性中没有ID只有Name。所以不能通过Thread类的GetCurrentThread来获取当前线

程ID,和processThread联系,只能用其他办法。经查,发现一个系统函数可以获取当前线程ID:

 [DllImport("Kernel32", EntryPoint = "GetCurrentThreadId", ExactSpelling = true)]
 public static extern Int32 GetCurrentWin32ThreadID();

当前线程ID获取后,就能在Process.GetCurrentProcess().Threads 集合中找到当前的processThread了。获取函数如下:

代码

 class ThreadUtility
    {
        [DllImport("Kernel32", EntryPoint = "GetCurrentThreadId", ExactSpelling = true)]
        public static extern Int32 GetCurrentWin32ThreadID();

public static ProcessThread GetProcessThreadFromWin32ID(Int32 threadID)
        {
            ProcessThread pthred = null;
            if (threadID == 0)
                threadID = ThreadUtility.GetCurrentWin32ThreadID();
         
                foreach (ProcessThread proThread in Process.GetCurrentProcess().Threads)
                {
                    if (proThread.Id == threadID)
                        pthred=proThread;
                    else
                        pthred= Process.GetCurrentProcess().Threads[0];
                }
                return pthred;
        }
    }

这样,问题就解决了。
   
    总结,processThread记录了线程的一些重要信息,比如UserProcessorTime等等。但是peocess没有现成的函数直接找到当前线

程,因此需要用win32系统函数找到当前线程ID后,再在processThread集合中找。

转载于:https://www.cnblogs.com/plaqin/archive/2010/05/20/1739995.html

Process.GetCurrentProcess().Threads 集合中找到当前的processThread相关推荐

  1. ruby 集合 分组_在Ruby中找到两个集合之间的区别

    ruby 集合 分组 Finding differences simply means that finding elements that are uncommon between two sets ...

  2. java8 list 去重_Java8-Stream在集合中的8种应用案例

    前言 Java8新特性我们使用的应该比较多了,今天这里整理了个人使用最多的8种场景,希望对大家有所帮助. Java Stream在集合中的运用案例 遍历 遍历也许是我们使用最多的功能了,在Java8之 ...

  3. Python程序从给定的N个数字中找到最大倍数

    Here, we will be framing code for finding the maximum multiple of a number x from a given set of a n ...

  4. java listt add_Java8 使用流抽取ListT集合中T的某个属性操作

    免费资源网 - https://freexyz.cn/ 在java开发中,我们经常会遇到需要从一个集合中,抽取集合中元素的某一个属性.在java8之前,我们通常采用for循环去获取,但java8之后我 ...

  5. 算法训练Day25 | LeetCode216. 组合总和III(和77.组合很像!);LeetCode17. 电话号码的字母组合(不同集合中组合)

    目录 LeetCode216. 组合总和III 1. 思路 2. 代码实现 3. 剪枝 4. 复杂度分析 5. 思考与收获 LeetCode17. 电话号码的字母组合 1. 思路 2. 代码实现 3. ...

  6. 【U8】固定资产结账提示“在对应所需名称或序数的集合中,未找到项目”

    固定资产结账时报错: 在对应所需名称或序数的集合中,未找到项目,自动备份本月帐套失败,如果继续进行月末结账则不能恢复到月末结账前状态. 解决方法: 是卡片样式的问题,查看 fa_model 表,每一个 ...

  7. 迷宫出路代码_如何在软件开发的迷宫中找到自己的出路

    迷宫出路代码 by Tim Kleier 蒂姆·克莱尔(Tim Kleier) 如何在软件开发的迷宫中找到自己的出路 (How to find your way through the corn ma ...

  8. 替换某个字符串_postman教程-10-如何在集合中快速查询和替换数据

    有时候我们常会遇到这样一种问题,系统中有太多的用例,环境变量和系统变量的值也太多,查找其中的某个值太不方便:或者有的值想要修改,但苦于修改的地方太多,修改起来太费劲.那么,针对这样的困扰,是否有办法解 ...

  9. 考考基础部分,谈谈Java集合中HashSet的原理及常用方法

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:工匠初心 cnblogs.com/LiaHon/p/1125 ...

最新文章

  1. TeaseR++:快速鲁棒的C++点云配准库介绍+英文版视频教程
  2. 1035 插入与归并
  3. 多层AOP 解决AOP执行顺序
  4. 菠萝蜜\菠萝蜜和榴莲有什么区别?
  5. start.s中的.balignl 16,0xdeadbeef
  6. 【数据结构与算法】链式栈的Java实现
  7. python面试技巧_经典7大Python面试题!看完考官竟然给了我30k的薪资
  8. vsto 外接程序安装成功为什么不显示_为什么说买笔记本一定要带雷电3接口?了解这5点你就明白了...
  9. VC++动态链接库(DLL)编程(二)--非MFC DLL
  10. 用友中标:打造新一代云化ERP 落地大型企业互联网+
  11. springcloud与springcloudalibaba版本对应关系
  12. VB.net小技巧系列目录
  13. hive 转拼音udf_Hive UDF编程:自己动手实现implode函数
  14. jQuery-表单校验
  15. 就业培训 | 2020第一期重庆高校毕业生大数据职业技能线上特训营开课啦
  16. 性能优化--启动优化(网易云音乐启动方案)
  17. Fiddler+手机模拟器+java采集抖音评论数据
  18. html移动轮播后盾网,后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件...
  19. 老派程序员浅谈Python的异常处理
  20. macmini 387 2k显示器尝试hidpi

热门文章

  1. 日期类计算器的实现以及运算符重载
  2. 10 种最常见的 Javascript 错误 — 总结于 1000+ 个项目,并阐述如何避免
  3. jenkins整合gitee自动部署SpringBoot项目
  4. 一种Latex环境搭建-CTex2.9和Winedt10.2安装和配置
  5. 扩容卡怎么恢复实际容量_Win10电脑硬盘数据损坏了怎么办?电脑数据恢复分享!...
  6. Echart 的常用配置
  7. 14.EPSANet: An Efficient Pyramid Squeeze Attention Block on Convolutional Neural Network(2021.3)
  8. 2012 “社区活动”博客专栏未收录活动
  9. 高考刚过本科线如何填报志愿
  10. 使用redis实现排行榜功能