初学C# 漫谈--C#多线程控制的困扰及De困扰
2007-02-12 14:19
309 查看
本人初学C#约一两个月吧,因为工作原因不能专注学习。俺是英语系毕业,编程这东西对俺来说可想而知。
前些天欲开发一个爬虫程序,就开始了偶的另一个翻山历程(之前开发过几个网站,通过解决问题学到了不少东西)。
刚拿到手里时一点头绪都没有。怎么获得网上文件?大家别笑,知道我当时的想法吗?当时我就用Stream方法试了一下,你别说,还真能打开。但后来想想,这个框架都叫.NET,会没有面向网络的专门的类吗?于是我发现了Uri和WebClient和WebRequest等。嘿嘿^_^
接下来一个问题让我想了好几天,看了好多书都没有解决。大家又别笑,没有经验嘛。就是多线程开始后如何判断它是否结束,或直接通过操作把它退出。
如前次一样,试了好多方法。从网上找,找到两个解决方案:一个是用死循环不停地试,另一个就是用Thread.Join();,都试了一把。最后发现:无一例外,全部导致程序死在进程里面。于是开始设想其它解决方案。首先想到的是间隔循环。死循环不是死机吗?那我放大循环间隔,每十秒或多长时间测试一次。还想过线程自身判断,后发现线程是不能对自己进行操作的。间隔判断的方法虽然可行,但毕定不是太好的方法。
后来被水木上一个同仁刺激了一下,让我从单纯思考等待线程结束跳到了能控制线程的开始与结束。于是一个非常简单的方法出来了:类级变量(这样就可以在类内任何地方对其进行操作了,而且并非声名时一定要.Start();嘛,可以在需要时才.Start();^_^)。把要对它进行控制线程统统声名为窗体的类级变量,马上搞定!
嘿嘿!
前些天欲开发一个爬虫程序,就开始了偶的另一个翻山历程(之前开发过几个网站,通过解决问题学到了不少东西)。
刚拿到手里时一点头绪都没有。怎么获得网上文件?大家别笑,知道我当时的想法吗?当时我就用Stream方法试了一下,你别说,还真能打开。但后来想想,这个框架都叫.NET,会没有面向网络的专门的类吗?于是我发现了Uri和WebClient和WebRequest等。嘿嘿^_^
接下来一个问题让我想了好几天,看了好多书都没有解决。大家又别笑,没有经验嘛。就是多线程开始后如何判断它是否结束,或直接通过操作把它退出。
如前次一样,试了好多方法。从网上找,找到两个解决方案:一个是用死循环不停地试,另一个就是用Thread.Join();,都试了一把。最后发现:无一例外,全部导致程序死在进程里面。于是开始设想其它解决方案。首先想到的是间隔循环。死循环不是死机吗?那我放大循环间隔,每十秒或多长时间测试一次。还想过线程自身判断,后发现线程是不能对自己进行操作的。间隔判断的方法虽然可行,但毕定不是太好的方法。
后来被水木上一个同仁刺激了一下,让我从单纯思考等待线程结束跳到了能控制线程的开始与结束。于是一个非常简单的方法出来了:类级变量(这样就可以在类内任何地方对其进行操作了,而且并非声名时一定要.Start();嘛,可以在需要时才.Start();^_^)。把要对它进行控制线程统统声名为窗体的类级变量,马上搞定!
嘿嘿!
相关文章推荐
- 步步为营 C# 技术漫谈 六、线程控制(Thread)
- 步步为营 C# 技术漫谈 六、线程控制(Thread)
- 步步为营C# 术漫谈六、线程控制(Thread)
- c#中跨线程调用windows窗体控件 .我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。
- C#实现控制线程池最大数并发线程
- c#中子线程控制进度条的一个简单例子
- c#中子线程控制进度条的一个简单例子
- C# 通过线程来控制进度条(转)--讲解多线程对界面的操作
- c# 线程中如何控制控件焦点
- C#中 使用 Backgroundworker控制UI线程 防止界面假死情况
- c#中子线程控制进度条的一个简单例子
- C# 非UI线程对控件的控制
- C# 跨线程控制lable控件坐标点
- c#中子线程控制进度条的一个简单例子 - jinjazz - CSDNBlog
- c# 线程中如何控制控件焦点
- C# 中子线程控制进度条的一个简单例子
- c#使用线程下载文件的控制技巧和缺陷
- C# Tip -- 如何优雅的控制线程状态
- c#中子线程控制进度条的一个简单例子
- C# 通过线程来控制进度条(转)