您的位置:首页 > 编程语言 > C#

C#使用Monitor处理线程的挂起和恢复

2010-11-06 16:42 435 查看
1、定义锁定对像和线程对像

object lockOjbect = new object();
Thread updateThread = null;

2、开启新线程

updateThread = new Thread(new ThreadStart(updateRun));
updateThread.Start();

private void updateRun()
{
FileStream fs = null;
try
{
Monitor.Enter(lockOjbect);

//执行代码,此处代码要尽量短(很快执行完毕)且最容易被执行到

Monitor.Exit(lockOjbect);
}
catch (ThreadAbortException ex)
{
}
finally//清理代码
{
}
}

3、挂起、恢复线程

Monitor.Enter (lockOjbect);

if (MessageBox.Show("升级未完成,真的要取消吗?", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)

{
updateThread.Abort();
udateThread.Join();
lblInfo.Text = "升级已被取消";
Monitor.Exit(lockOjbect);
}

else

{
Monitor.Exit(lockOjbect);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: