主线程中一个FROM,子线程在一个CLASS里面,那么主线程如何通知子线程停暂、暂停?

CTBOK 2006-12-25 03:41:00
我看过了
http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx
这一篇东西,但只能在同一个FORM里面执行,现在问题如下

我有一个FORM,主线程
一个CLASS,主线程启用新的线程并调用这个CLASS,问题是,我要暂停或者停止这个线程,我应该怎样子做?谢谢

线程.abort等的会出错,不想用,谢谢
...全文
152 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jason_mf 2006-12-26
  • 打赏
  • 举报
回复
mark
liujia_0421 2006-12-26
  • 打赏
  • 举报
回复
上面随手写的,可能有错误..

但思路大致就是这样了..
liujia_0421 2006-12-26
  • 打赏
  • 举报
回复
TO:但我的子线程是在一个class里面,包括循环

这个没有关系啊..

for example:

public class Test
{
//线程标志
private bool flag;
//定义一个线程
private Thread myThread;
//构造函数
public Test
{
flag=false;
myThread=new Thread(new ThredStart(threadProc));
}
//线程函数
private void threadProc()
{
while(flag)
{
//操作
}
}
//启动线程
public void Start()
{
flag=true;
myThread.Start();
}
//关闭线程
pulbic void Stop()
{
flag=false;
myThread.Join();
}
}

调用:
Test test=new Test();
//启动线程
test.Start();
//关闭线程
test.Stop();
bestyangfeng 2006-12-26
  • 打赏
  • 举报
回复
楼上
卧_槽 2006-12-26
  • 打赏
  • 举报
回复
你的class提供一个public方法,form只管调用这个方法。通过这个方法sleep,stop子线程即可
CTBOK 2006-12-26
  • 打赏
  • 举报
回复
liujia_0421(SnowLover) 所说的是在同一个From里面哦,但我的子线程是在一个class里面,包括循环
miqier 2006-12-25
  • 打赏
  • 举报
回复
同意楼上的
liujia_0421 2006-12-25
  • 打赏
  • 举报
回复
最好不要用Abort..

换用Join方法..

举个例子,如果你的线程函数是一个无限循环,可以设置一个标志:
while(flag)
{
//操作
}

//终止
flag=false;
myThread.Join();

110,549

社区成员

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

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

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