首页 新闻 会员 周边 捐助

C# 这算是多线程么?能给我描述下具体情况么?

0
悬赏园豆:30 [已解决问题] 解决于 2013-11-15 00:09

就是在winforms里面就是让用户自己添加多个tabControl并且将不同的数据库的配置信息写在每个上面,
将其记录在ini里面或者Config里面。

逐个点击tabControl上的开始操作按钮,每个tabControl上做的是不同的操作

tab1:将ip1,数据库1,表1的数据转移到   ip0,数据库0,表0中,并且将转移情况输出在richtextbox1.

tab2:将ip2,数据库2,表1的数据转移到   ip0,数据库0,表0中并且将转移情况输出在richtextbox2.

tab1:将ip3,数据库3,表3的数据转移到   ip0,数据库0,表0中并且将转移情况输出在richtextbox3.

 

里面的操作互不干涉,我有见过人家用委去做...其实叫我就想不太明白:麻烦有空的大神和我稍微描述下这工作的思路么?

其实我还在想可不可以每个TabControl开启一个线程,这样做的话 会不会很麻烦?我没接触过多线程的

.

.

.

.F.的主页 .F. | 初学一级 | 园豆:13
提问于:2013-10-31 21:50
< >
分享
最佳答案
0

首先,你要明白两个概念,什么叫线程,什么叫进程。

通俗一点说,你在Windows操作系统中,可以打开WORD,EXCEL,还有你开发的软件,其中一个软件在进行长达10分钟的操作时,另外一个软件仍然可以操作,响应键盘、鼠标事件,这三个东东我们称为进程。

在一个软件中(比如你这儿说的WINFORM软件),当软件在进行某些耗时的操作,比如迁移数据表,可能你点一下鼠标,

软件要跑5分钟,这时候,你只好去冲一杯咖啡了。

所以有了线程,所谓的线程的意思是,当你在一个软件中,你可以开启一个线程,进行耗时的操作,

这时候,你的软件仍然可以响应键盘、鼠标操作。比如这时候,你可以在TAB之间切换。

但是线程不能解决的问题是资源占用,比如你开了100个线程,CPU也只有一个,硬盘也只有一个。

除非你是在100个数据库服务器之间进行数据库迁移,否则速度方面没有太多影响。

线程解决的是用户友好度,让你的软件不会因为耗时的操作而陷入假死状态。

收获园豆:30
爱编程的大叔 | 高人七级 |园豆:30844 | 2013-11-01 10:18
其他回答(4)
0

同一控件上是不可能多线程的,就算用多线程也是排队执行ui的,那还不如单线程

56180825 | 园豆:1749 (小虾三级) | 2013-10-31 22:49

 那我用委托去处理这个转移表数据的方法,可行么  ?效率会比一个一个开程序更高么

支持(0) 反对(0) .F. | 园豆:13 (初学一级) | 2013-10-31 23:55
0

多线程是需要专门开辟出来的,

平常心队长 | 园豆:1113 (小虾三级) | 2013-11-01 09:06
0

IO 是瓶颈,都是访问同一个硬盘的数据库,不会提升多少。

geass.. | 园豆:1821 (小虾三级) | 2013-11-03 10:32
0

没问题,当用户点击操作的时候,将操作的代码放在另外一个线程中执行即可。这样用户点击多个操作就开辟多个线程,不会将UI线程卡住,各做各的事情。至于数据库就更不用担心了,数据库本身都是为高并发设计的,楼上的说法是不对的。

ocean | 园豆:824 (小虾三级) | 2013-11-07 22:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册