请教各位:多个线程启动后,我关闭了窗口,发现线程还在跑, 如何是好啊?谢谢!!!如何在关闭窗口时,也一并关闭全部的线程呢?谢谢!!!
解决方案 »
- C#制作自动回帖,求了很久没人会。
- 请问buttton的Text竖排是哪个属性
- 无法绑定由多个部分组成的标识符
- 文本拖动问题
- 怎么把这两句SQL语句合成一句
- C#往SQL SERVER中导入excel数据文件的问题
- 我using System.Data.OracleClient;后怎么提示,OracleClient在System.Data中不存在啊?为什么?
- to:版主 ArLi2003、redbb,winform下checkedlistbox的selectionmode的属性为何不能选multisimple
- 如何保证生成的随机数不重复
- 初学网络编程的困惑
- 在VS.NET 2003中不能创建和打开项目?
- winform2个问题,或许很简单,各位请进~~
abort() 是不能立即结束线程的
Thread t;
t.IsBackGround = true;
这样程序关闭,线程也会退出
可以用Join()等它完全终止
Thread t;
t.IsBackGround = true;
这样程序关闭,线程也会退出这样是可以的,我测试了,是好用的。
public void GetHtmlContent()
{
try
{
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.163.com");
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(resp.GetResponseStream(),Encoding.Default);
string source = sr.ReadToEnd();
resp.Close();
listBox1.Items.Add(source);
}
catch
{
listBox1.Items.Add("出错");
}
} private void aaa()
{
for(int i=0;i<250;i++)
{
Thread thr = new Thread(new ThreadStart(GetHtmlContent));
thr.IsBackground = true;
thr.Start();
Thread.Sleep(10);
} } private void button1_Click(object sender, System.EventArgs e)
{
Thread thr = new Thread(new ThreadStart(aaa));
thr.Start();
}
private void begin_Click(object sender, System.EventArgs e)
{
// 定义线程入口代理,指定线程要执行的函数
ThreadStart starter = new ThreadStart(this.SpiderThread); // 创建一个新的线程
Thread spider = new Thread(starter);
// 启动线程
spider.Start();
}关闭窗口时重写了Dispose:
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}不知是不是后面这段写得不好啊? 我看到很洋鬼子写的多线程程序,好像关闭窗口后,线程立即就终止了。谢谢各位的热心帮助啊!
then close it
Thread spider = new Thread(starter);spider.IsBackGround = true;///////////////加上这句就行了
// 启动线程
spider.Start();
是的。缺点呢?
不知道。