none
有办法减少Process.GetProcesses()函数的CPU占用吗 RRS feed

  • Pergunta

  • 貌似在Process.GetProcesses()函数执行的瞬间,CPU占用较高,有没有办法限制以下这个函数的执行速度?

    quinta-feira, 1 de janeiro de 2009 09:22

Respostas

  • 你好!
       这个方法需要创建新的Process数组,然后检索本地计算机上的所有进程,然后再将他们和本地计算机上的所有进程资源关联,这个过程需要消耗一定的CPU时间。你可以只在需要的时候使用这个方法,这个方法已经在.NET Framework中写好了,不能改动了,实际上就算你直接使用Windows API也是需要消耗一定的CPU时间。
       希望以上回答对你有帮助!
    quinta-feira, 1 de janeiro de 2009 10:46
    Moderador
  • 您好

     

    由于这个函数是给予.NET FRAMEWORK的,所以这个函数需要消耗一定的CPU,内存等资源,如果您对资源要求很高的话,可以尝试使用汇编或者C/C++进行操作,但是实际上C/C++还是会消耗一定的CPU等资源的,而汇编的话,如果您很了解汇编的知识,也只能通过硬件访问了,但是还得看硬件是否支持该指令等。

    • Marcado como Resposta BsiIce quinta-feira, 5 de março de 2009 09:28
    domingo, 4 de janeiro de 2009 06:44
    Moderador

Todas as Respostas

  • 你好!
       这个方法需要创建新的Process数组,然后检索本地计算机上的所有进程,然后再将他们和本地计算机上的所有进程资源关联,这个过程需要消耗一定的CPU时间。你可以只在需要的时候使用这个方法,这个方法已经在.NET Framework中写好了,不能改动了,实际上就算你直接使用Windows API也是需要消耗一定的CPU时间。
       希望以上回答对你有帮助!
    quinta-feira, 1 de janeiro de 2009 10:46
    Moderador
  • 我想可能性不太大,因为.net是托管程序,内存呀,CPU呀的资源不能直接控制。不过要想影响CPU占用,你可以启用一个新线程,把这个线程的级别放低点,它就在与其他线程去争资源时就处于劣势,也就是能缓解你的问题。

    sábado, 3 de janeiro de 2009 15:07
    Moderador
  • 您好

     

    由于这个函数是给予.NET FRAMEWORK的,所以这个函数需要消耗一定的CPU,内存等资源,如果您对资源要求很高的话,可以尝试使用汇编或者C/C++进行操作,但是实际上C/C++还是会消耗一定的CPU等资源的,而汇编的话,如果您很了解汇编的知识,也只能通过硬件访问了,但是还得看硬件是否支持该指令等。

    • Marcado como Resposta BsiIce quinta-feira, 5 de março de 2009 09:28
    domingo, 4 de janeiro de 2009 06:44
    Moderador
  • 遇到了相同得问题,没想到过了这么久,这个问题还是没有解决。而且这是在操作系统长时间运行后调用Proces.GetProcesses()才会产生的问题。
    segunda-feira, 27 de fevereiro de 2017 06:59