专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VB Dotnet

2005 中的 Thread 有关问题

发布时间:2011-06-23 15:56:07 文章来源:www.iduyao.cn 采编人员:星星草
2005 中的 Thread 问题
我的一本   2003   的书籍中介绍关于   Thread   的暂停和重新启动的命令如下:
MyThread.Resume()
MyThread.Suspend()
但   2005   中提示这两个命令过时了,不再支持。我找了半天也没有找到能够代替这两个命令的内容。谢谢大家。

------解决方案--------------------
.NET 2.0: Thread.Suspend和Thread.Resume被废弃(obsolete)
实例函数(Instance Method)Thread.Suspend和Thread.Resume在2.0版本下被标为obsolete. 编译使用这2个函数的代码会得到warning. 当然在以后的.NET版本下可能就会是编译错误了。
其警告信息包含下列信息:Please use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources. (请使用System.Threading中的其他类,如Monitor, Mutex, Event, 和Semaphore,以同步线程和保护资源。)
Thread.Suspend和Thread.Resume被废弃的主要原因是因为其使用很容易造成线程死锁(Deadlock)。
静态函数(Static Method)Thread.Sleep的使用在.NET 2.0下不受影响。
------解决方案--------------------
不知道楼主的需求是什么,我觉得是不是可以用同步锁来取代 Suspend 和 Resume 的用法。
------解决方案--------------------
[ObsoleteAttribute( "Thread.Suspend has been deprecated. Please use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources. http://go.microsoft.com/fwlink/?linkid=14202 ", false)]
public void Suspend ()

是这样把,叫你用信号量或者其他东西来控制.Obsolete不是不能用,只是不建议用而已
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: