公司要求我写一个winform的程序,要同时从两个站点上下载文件,所以我把和下载相关的所有内容写到一个类里,稍做修改就成了两个类,在类的构造函数里把主窗口的文本框做为参数传给类,用来实时显示下载结果.
目前的问题是,我先启动了一个类实例,开始运行它的下载函数,下载第一个网站,这可从主窗口的文本框里看出来,这时再启动另一个类,第二个类的下载也开始运行了,这也可以从文本框里看出来,但是第一个类的函数就再也没反应了,设断点看第一个类的程序也是不再向下运行了,文本框里始终只有第二个类在下载第二个网站的内容,请问象这种情况有谁遇到过吗,有人知道怎么解决吗
这两个类的代码几乎全部一样,因为本来就是用一个类改写出来的。类里面的变量名和函数名也基本上是一样的,按说这不应该会有问题,不过我还是尽可能说得详细些吧。
下面是类的简要结构,实际代码没法贴上来,将近三千行呢主窗口文件:MainForm.cs
//运行第1个类的实例下载第1个网站
button1_click()
{
class1 myClass = new class1(textBox1)
myClass.download();
}
//运行第2个类的实例下载第2个网站
button2_click()
{
class2 myClass = new class2(textBox1)
myClass.download();
//点完这个按钮开始第2个类实例的运行后,第1个类实例下的函数就没反应了
}第一个类文件:class1.cs
class1
{
public class1(textBox)
{
第1个类的构造函数;
}
public void download()
{
开始下载第1个网站的文件;
向线程池添加回调函数监视是否下载完;
}
private void DBoperation()
{
向数据库里写入下载信息;
}
}第2个类文件:class2.cs
class2
{
public class2(textBox)
{
第2个类的构造函数;
}
private void download()
{
开始下载第2个网站的文件;
向线程池添加回调函数监视是否下载完;
}
private void DBoperation()
{
向数据库里写入下载信息;
}
}
目前的问题是,我先启动了一个类实例,开始运行它的下载函数,下载第一个网站,这可从主窗口的文本框里看出来,这时再启动另一个类,第二个类的下载也开始运行了,这也可以从文本框里看出来,但是第一个类的函数就再也没反应了,设断点看第一个类的程序也是不再向下运行了,文本框里始终只有第二个类在下载第二个网站的内容,请问象这种情况有谁遇到过吗,有人知道怎么解决吗
这两个类的代码几乎全部一样,因为本来就是用一个类改写出来的。类里面的变量名和函数名也基本上是一样的,按说这不应该会有问题,不过我还是尽可能说得详细些吧。
下面是类的简要结构,实际代码没法贴上来,将近三千行呢主窗口文件:MainForm.cs
//运行第1个类的实例下载第1个网站
button1_click()
{
class1 myClass = new class1(textBox1)
myClass.download();
}
//运行第2个类的实例下载第2个网站
button2_click()
{
class2 myClass = new class2(textBox1)
myClass.download();
//点完这个按钮开始第2个类实例的运行后,第1个类实例下的函数就没反应了
}第一个类文件:class1.cs
class1
{
public class1(textBox)
{
第1个类的构造函数;
}
public void download()
{
开始下载第1个网站的文件;
向线程池添加回调函数监视是否下载完;
}
private void DBoperation()
{
向数据库里写入下载信息;
}
}第2个类文件:class2.cs
class2
{
public class2(textBox)
{
第2个类的构造函数;
}
private void download()
{
开始下载第2个网站的文件;
向线程池添加回调函数监视是否下载完;
}
private void DBoperation()
{
向数据库里写入下载信息;
}
}
解决方案 »
- 急!!!!!Update语句错误,很简单的,求帮忙
- rdlc报表绑定数据后不显示(没分了,多包涵)
- 各位弟兄帮帮忙,Form2中timer事件!
- 如何在一个主window里面建立很多可以转换的页面
- 请教Visual Studio 2008的版本区别
- 如何把winform C#中窗体保存成BMP文件呢?
- 如何将类似"8G74G6DG"转化成对应汉字
- 网上定书系统,怎么监控接收订单。
- 如何将字符转化为ASCII码值, 如输入a,能得到97 ?
- c#中的全局变量存放在哪里?
- 郁闷中,VS2005中使用另一线程更新DataGridView时滚动条动不了
- C# 面试问题讨论
2、class1和class2看上去是一模一样的……