如何终止和暂停线程和进程?

crazystudio 2004-12-26 11:23:13
程序起动时启动了一个线程和进程!
Thread 和Progress
Thread t=new Thread(new ThreadStart(listDir));

Process p = new Process();
程序退出后这两个东东还在运行,怎么样在程序退出时停止这两个东东!
窗体上有一个暂停按钮,按下暂停时可不可以暂停进程的执行?
...全文
1182 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
egxsun 2005-01-20
  • 打赏
  • 举报
回复
暂停线程用sleep(),暂停进程不知道
simon8181 2005-01-20
  • 打赏
  • 举报
回复
'Dim myProcesses() As Process
'Dim myProcess As Process

'myProcesses = Process.GetProcessesByName("EXCEL")
'For Each myProcess In myProcesses

' myProcess.Kill()
'Next
GnuDoyng 2005-01-13
  • 打赏
  • 举报
回复
呵呵,楼主到MSDN里去搜呀!很详细的!
djlgr 2005-01-13
  • 打赏
  • 举报
回复
用它可以关闭进程
threadA.IsBackground = true;
linguicheng 2004-12-26
  • 打赏
  • 举报
回复
如果 CloseMainWindow 失败,则可以使用 Kill 终止进程。Kill 是终止没有图形化界面的进程的唯一方法。

只能对在本地计算机上运行的进程调用 Kill 和 CloseMainWindow。无法使远程计算机上的进程退出。仅可查看在远程计算机上运行的进程的信息。
welshem 2004-12-26
  • 打赏
  • 举报
回复
t.Abort();可以终止一个线程
t.Suspend();可以挂起一个线程
t.Resume();继续已挂起的线程


进程关闭:CloseMainWindow
Process[] ps = Process.GetProcessesByName("进程名");
foreach(Process myProcess in ps){
myProcess.CloseMainWindow();
}

linguicheng 2004-12-26
  • 打赏
  • 举报
回复
Kill 导致进程不正常终止,因而只应在必要时使用。CloseMainWindow 使进程能够有序终止并关闭所有窗口,所以对于有界面的应用程序,使用它更好
linguicheng 2004-12-26
  • 打赏
  • 举报
回复
Thread.Abort()调用此方法通常会终止线程
Process.Kill()强制应用程序退出,请使用 Kill 方法
yellowhwb 2004-12-26
  • 打赏
  • 举报
回复

t.Abort();
t.Join();
yellowhwb 2004-12-26
  • 打赏
  • 举报
回复
可以终止的,就下面2句:
Thread.CurrentThread.Abort();
Thread.CurrentThread.Join();
xiaoslong 2004-12-26
  • 打赏
  • 举报
回复
快啊
lucbesson 2004-12-26
  • 打赏
  • 举报
回复
threadA.IsBackground = true; //后台线程
threadA.Abort();//终止 但不是一定管用


gbbword 2004-12-26
  • 打赏
  • 举报
回复
从调用Thread.Abort()开始到线程终止时间固定吗?线程中的资源,谁来释放。
Shanks_YH 2004-12-26
  • 打赏
  • 举报
回复
up,楼上几位说的很清楚
oyljerry 2004-12-26
  • 打赏
  • 举报
回复
按下暂停后,thread.Resume();挂起线程
zachary7833 2004-12-26
  • 打赏
  • 举报
回复
线程转化的函数:

WaitSleepJoin------>Started
用Pulse,PulseAll,Interrupt

Running------------>WaitSleepJoin
用Wait,Sleep,Join

Running------------>Suspended
用Suspend

Suspended---------->UnStarted
用Resume

UnStarted---------->Started
用Start





兔子-顾问 2004-12-26
  • 打赏
  • 举报
回复
mark
hxhbluestar 2004-12-26
  • 打赏
  • 举报
回复
首先,要把这个线程定义在函数外
比如
class A
{
Thread threadA;
private void Init()
{
//在这里实例化线程A
threadA = new Thread(new ThreadStart( dosomething ));
threadA.IsBackground = true; //这样程序一退出线程就会自动中止
threadA.Start();
}
private void Button1_Click(object sender, System.EventArgs e)
{
//这个是暂停按钮的按下代码
if( threadA != null )
{
threadA.Abort();
}
}
}
egxsun 2004-12-26
  • 打赏
  • 举报
回复
暂停线程可以用sleep()

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧