2)通过System.Diagnostics.ProcessThread来设置优先级,它能设置比第1种方法更多的优先级
Idle 指定空闲优先级。 它是所有线程的可能的最低优先级值,与关联的 ProcessPriorityClass 的值无关。
Lowest 指定最低优先级。 这比关联的 ProcessPriorityClass 的普通优先级低两级。
BelowNormal 指定的优先级比关联的 ProcessPriorityClass 的普通优先级低一级。
Normal 指定关联的 ProcessPriorityClass 的普通优先级。
AboveNormal 指定的优先级比关联的 ProcessPriorityClass 的普通优先级高一级。
Highest 指定最高优先级。 这比关联的 ProcessPriorityClass 的普通优先级高两级。
TimeCritical 指定时间关键优先级。 这是所有线程中的最高优先级,与关联的 ProcessPriorityClass 的值无关
部分代码
Dim myprocess As Process = Process.GetCurrentProcess()
Dim value As ProcessThreadCollection
Dim pt As ProcessThread
value = myprocess.Threads
For Each pt In value
pt.PriorityLevel = ThreadPriorityLevel.AboveNormal
Next
此外,还可以设置线程动态优先级调整的开关
ProcessThread.PriorityBoostEnabled
当 PriorityBoostEnabled 为 true 时,只要关联的进程离开等待状态,系统便暂时提升该线程的优先级。 此操作可防止其他进程中断当前线程的处理。 PriorityBoostEnabled 设置影响所有现有线程及该进程随后创建的所有线程。 若要还原正常行为,请将 PriorityBoostEnabled 属性设置为 false。
仅当线程运行在一个将 PriorityClass 设置为动态优先级枚举值之一(Normal、High 或 RealTime)时,PriorityBoostEnabled 才有效。
4、睡眠与阻塞
Sleep(Int32)将当前线程挂起指定的时间。
注意参数为线程被阻塞的毫秒数
Imports System.Threading
Class Example
Shared Sub Main()
For i As Integer = 0 To 4
Console.WriteLine("Sleep for 2 seconds.")
Thread.Sleep(2000)
Next
Console.WriteLine("Main thread exits.")
End Sub
End Class
Sleep(TimeSpan)将当前线程阻塞指定的时间。
下面是关于msdn的阻塞的例子
Imports System.Threading
Class Example
Shared Sub Main()
Dim interval As New TimeSpan(0, 0, 2)
For i As Integer = 0 To 4
Console.WriteLine("Sleep for 2 seconds.")
Thread.Sleep(interval)
Next
Console.WriteLine("Main thread exits.")
End Sub
End Class
5、挂起与恢复
mythread1.Start(myprocess)
mythread2.Start(myprocess)
mythread3.Start(myprocess)
mythread1.Suspend()
mythread2.Suspend()
mythread3.Suspend()
mythread1.Resume()
mythread2.Resume()
mythread3.Resume()
分享到:
相关推荐
最近收集的VB.Net-C#多线程Thread-代理委托delegate编程。文章列表: c#.net多线程同步.txt ...浅述WinForm多线程编程与Control.Invoke的应用.txt 微软.Net开发中的多线程编程总结.txt 线程中的参数传递.txt
VB.NET多线程编程技术--大量提高应用程序的性能[收集].pdf
vb.net2010数据库编程基础教程-数据绑定,使用控件方式连接数据库,图文教程
VB.NET判断网络连接状态
VB.NET应用教程第2版-童爱红-数据包 书本内的全部代码!
用VB.NET写的小计算器,之前看到一个,不过发现那个BUG挺多的,就自己写了一个,呵呵,仅供参考。打开里面的Caculate.vbproj文件,即可看到源代码。
使用VB.NET对PLC进行读写数据,方便快捷,对入门者有很好的编程
第8章-VB.NET与数据库应用程序10-10-25
AUTOCAD VBA&VB.NET开发基础与实例教程 c#
VB.net设计模式高级编程这本书的源码,网上已经找不到,特发出来共享。
vb.net多线程例子 ,创建了三个方法:TestMethod1, TestMethod2和TestMethod13,并且这三个方法功能相似,通过循环向输出设备输出
VB.NET实例解析应用编程 VB.NET实例解析应用编程 VB.NET实例解析应用编程
Developers guide to ASP.NET
VB.NET之SerialPort编程实例源码 直接使用
AUTOCAD VBA&VB.NET开发基础与实例教程 c#
vb.net控件应用编程实例教程vb.net控件应用编程实例教程vb.net控件应用编程实例教程
VB.NET多线程编程 对于VB.NET的多线程进行了比较详细的解释
ASP.NET 4高级编程 涵盖C#和VB.NET 第7版(完整)
第一部分 Visual Basic.net基础 第二部分 vb.net的语法部分 第三部分 visual basic.net的运算 第四部分 visual basic.net的常用控件 第六部分 vb.net的OOP...第八部分 vb.net的多线程 第九部分 vb.net的文件和出错处理
VB.NET高级篇教程