初学C# 漫谈--C#多线程控制的困扰及De困扰

本文分享了一个C#初学者开发爬虫程序的经历,重点介绍了如何使用多线程技术并有效控制线程的启动与结束。作者通过设置类级变量的方式实现了对线程的灵活控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人初学C#约一两个月吧,因为工作原因不能专注学习。俺是英语系毕业,编程这东西对俺来说可想而知。

前些天欲开发一个爬虫程序,就开始了偶的另一个翻山历程(之前开发过几个网站,通过解决问题学到了不少东西)。

刚拿到手里时一点头绪都没有。怎么获得网上文件?大家别笑,知道我当时的想法吗?当时我就用Stream方法试了一下,你别说,还真能打开。但后来想想,这个框架都叫.NET,会没有面向网络的专门的类吗?于是我发现了Uri和WebClient和WebRequest等。嘿嘿^_^

接下来一个问题让我想了好几天,看了好多书都没有解决。大家又别笑,没有经验嘛。就是多线程开始后如何判断它是否结束,或直接通过操作把它退出。

如前次一样,试了好多方法。从网上找,找到两个解决方案:一个是用死循环不停地试,另一个就是用Thread.Join();,都试了一把。最后发现:无一例外,全部导致程序死在进程里面。于是开始设想其它解决方案。首先想到的是间隔循环。死循环不是死机吗?那我放大循环间隔,每十秒或多长时间测试一次。还想过线程自身判断,后发现线程是不能对自己进行操作的。间隔判断的方法虽然可行,但毕定不是太好的方法。

后来被水木上一个同仁刺激了一下,让我从单纯思考等待线程结束跳到了能控制线程的开始与结束。于是一个非常简单的方法出来了:类级变量(这样就可以在类内任何地方对其进行操作了,而且并非声名时一定要.Start();嘛,可以在需要时才.Start();^_^)。把要对它进行控制线程统统声名为窗体的类级变量,马上搞定!

嘿嘿!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值