您的位置:首页 > 编程语言 > C#

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

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

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

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

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

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

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

嘿嘿!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: