2014-03-06 48 views
0

有没有办法以低优先级启动控制台应用程序?
我在Windows Mobile 6.5(.NET CF 2.0),它调用控制台应用程序是这样运行的表单应用程序:在控制台应用程序上设置优先级

Dim myprocess As New ProcessStartInfo() 
myprocess.FileName = "myprocess.exe" 
myprocess.Arguments = "myarguments" 
myprocess.UseShellExecute = False 
Process.Start(myprocess) 


我怎么能启动它后,设置该进程的优先级?

回答

0

System.Diagnostics.ProcessPriorityClass指示系统与进程关联的优先级。此值与进程的每个线程的优先级值一起确定每个线程的基本优先级。

BelowNormal指定该进程的优先级高于空闲但低于正常。

在为表单或任何想要更改进程优先级的任何地方加载之前调用此方法。

Dim myProcess As System.Diagnostics.Process = _ 
    System.Diagnostics.Process.GetCurrentProcess() 
myProcess.PriorityClass = System.Diagnostics.ProcessPriorityClass.BelowNormal 

UPDATE

.NET Compact Framework 2.0支持线程在这里你可以设置线程的优先级。离开我的头顶。

Imports System.Threading 

    Dim yourThread As Thread 
    yourThread = New Thread(AddressOf ThreadTask) 
    yourThread.Start() 
    yourThread.Priority = ThreadPriority.BelowNormal 

Private Sub ThreadTask() 

     'Whatever you want to do 

End Sub 
+0

谢谢!看起来像'PriorityClass'在紧凑框架中不可用,但... – seph

+0

对不起我的错误。你有没有尝试过使用'System.Threading'和'YourThread.Priority'? – equisde

+0

线程优先级确实有效,我之前使用它。我之前没有尝试在Windows Mobile中设置进程优先级,因此如果线程优先级不够,则必须更多地查看进程。如果你不能在CF中完成,你可以通过P/Invoke的Windows API来完成 – Alan