C# 怎样快速中断一个阻塞的线程?
比如privatevoidform1_Load(objectsender,Evente){Threadthread=newThread(st);Thread.Sleep(...
比如private void form1_Load(object sender,Event e){ Thread thread=new Thread(st); Thread.Sleep(1000); thread.Abort();//此处怎样写,可以快速终止thread线程?(st函数内MessageBox不能手动点击的情况下)}Private void st(){ MessageBox.Show("不点击我怎样才能关闭这个线程呢?");}
展开
3个回答
2013-04-15
展开全部
关闭线程一般有2个办法.异步关闭和延迟关闭..
异步关闭就是你在需要关闭已经阻塞的进程线程了的时候..创建一个新的线程来关闭它.
延迟关闭的话就是你在有可能遇到问题的线程里面不断判断自身是否符合要呗关闭的条件..
如果是你说取消传输文件这样的线程的话..应该是不允许有延迟的..
那你就用异步关闭去关掉已经阻塞的线程把..
异步关闭就是你在需要关闭已经阻塞的进程线程了的时候..创建一个新的线程来关闭它.
延迟关闭的话就是你在有可能遇到问题的线程里面不断判断自身是否符合要呗关闭的条件..
如果是你说取消传输文件这样的线程的话..应该是不允许有延迟的..
那你就用异步关闭去关掉已经阻塞的线程把..
2013-04-15
展开全部
thread.Abort();这个本来就是结束进程的。没有快不快速的方法。我认为你是想有段代码来判断问题吧!你上面的代码也只是创建了线程!但是,并没有启动线程!!!!你何来结束呢!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-15
展开全部
用发送信号的方法应该可以完成. 信号发送给特定的进程,切换到那个进程的时候才会去处理,因此在信号处理中sleep一下,应该可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询