社区
C#
帖子详情
C# 如何用线程来加载界面
sagitta1130
2008-12-03 09:32:42
各位好:
用C#做软件界面时,由于采用的是通过WebService从服务器SQL数据库里取数据来填充界面,我想可不可以用线程一边加载数据,一边用线唾来加载界面,如何用线程来加载界面?
谢谢!
...全文
299
16
打赏
收藏
C# 如何用线程来加载界面
各位好: 用C#做软件界面时,由于采用的是通过WebService从服务器SQL数据库里取数据来填充界面,我想可不可以用线程一边加载数据,一边用线唾来加载界面,如何用线程来加载界面? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liningln0
2008-12-03
打赏
举报
回复
各位好:
用C#做软件界面时,由于采用的是通过WebService从服务器SQL数据库里取数据来填充界面,我想可不可以用线程一边加载数据,一边用线唾来加载界面,如何用线程来加载界面?
谢谢!
[Quote=引用 11 楼 sagitta1130 的回复:]
5楼和7楼的方法我都试了,5楼的可以,能明显的感觉到界面加载快了一些,但是唯一不足的就是,这个方法只有在数据加载完之后再显示界面,7楼的方法可以解决5楼的不足,但不足的是提示:
难道非得要用委托?
各位前辈还有方法吗?
[/Quote]
如果想要开辟一个新的线程,但不用委托是很难的吧...因为线程的参数就必须是方法地址(也就是方法名),所以不用委托不是很现实.
jshailin
2008-12-03
打赏
举报
回复
同意7楼的
mochencui
2008-12-03
打赏
举报
回复
七楼的兄弟的回答还是不错的
sagitta1130
2008-12-03
打赏
举报
回复
5楼和7楼的方法我都试了,5楼的可以,能明显的感觉到界面加载快了一些,但是唯一不足的就是,这个方法只有在数据加载完之后再显示界面,7楼的方法可以解决5楼的不足,但不足的是提示:
难道非得要用委托?
各位前辈还有方法吗?
sagitta1130
2008-12-03
打赏
举报
回复
[Quote=引用 9 楼 justindreams 的回复:]
不要一边取数一边加载,这样可能会出现不同是加载的情况。
我给你另一种思路:(要使用XML)
登录的时候,从数据库中取出界面要加载的内容,将必要信息,写入xml放入本地,在某些位置做标志,这个标志是检查界面是否需要变化的,如果需要变化,重新写xml文件
然后,加载界面通过xml来加载
只需要通过标志检查是否界面有变化,有变化以后才需要改界面,并且,使用本地xml来加载,速度上应该比你的方式要快
[/Quote]
你这种方法听说过,一直没用过!
每次登陆时,还是要从数据库读取信息来生成XML文件,这好你与线程来加载应该区别不大吧,在时间消耗上!
justindreams
2008-12-03
打赏
举报
回复
不要一边取数一边加载,这样可能会出现不同是加载的情况。
我给你另一种思路:(要使用XML)
登录的时候,从数据库中取出界面要加载的内容,将必要信息,写入xml放入本地,在某些位置做标志,这个标志是检查界面是否需要变化的,如果需要变化,重新写xml文件
然后,加载界面通过xml来加载
只需要通过标志检查是否界面有变化,有变化以后才需要改界面,并且,使用本地xml来加载,速度上应该比你的方式要快
i0876
2008-12-03
打赏
举报
回复
学习了。
liningln0
2008-12-03
打赏
举报
回复
public Form1()
{
InitializeComponent(); //先加载界面,以免给用户有等待的感觉.觉得速度不行.
new System.Threading.Thread(new System.Threading.ThreadStart(DB操作)).Start();
}
DB操作()
{
}
因为数据可能是加载到界面的某些地方,所以建议不同时启用两个线程,一个加载界面,一个加载数据,这样很容易出现冲突(而且很难解决),如果数据不是加载到当前这个界面,那么5楼的方法可以用.但是建议做点修改.先把截面的框架加载好,然后再加载数据.这样不会给用户长时间等待.在用户看到界面的时候再去开辟线程.
justseven
2008-12-03
打赏
举报
回复
接分,走人
jinsuo_1986
2008-12-03
打赏
举报
回复
public Form1()
{
new System.Threading.Thread(new System.Threading.ThreadStart(DB操作)).Start();
InitializeComponent();
}
DB操作()
{
}
killer_liqiao
2008-12-03
打赏
举报
回复
up
sagitta1130
2008-12-03
打赏
举报
回复
[Quote=引用 1 楼 siemems 的回复:]
可以先加载界面,然后再加载数据
[/Quote]
你能不能说的详细点,我想知道线程到底是怎样加载界面的,你能不能写个示例程序?谢谢!
卧_槽
2008-12-03
打赏
举报
回复
开个后台线程就是了,很难么?
siemems
2008-12-03
打赏
举报
回复
可以先加载界面,然后再加载数据
Deathsign
2008-12-03
打赏
举报
回复
你添加一个进度条就行啦……
多线程操作控件是老方法了
Contral.Invoke这个 查查MSDN……上面的例子很详细
jinsuo_1986
2008-12-03
打赏
举报
回复
其实可以这样:加进度条
进度条显示的同时,对DB操作
完事后显示你的界面
C#
多
线程
刷新
界面
C#
多
线程
刷新
界面
C#
多
线程
进度条实例
利用多
线程
创建的经典的好用的精度条,供大家参考使用
C#
Winform
线程
创建子窗体
C#
Winform 利用
线程
延时创建子窗体并且可跨
线程
控制主窗体的控件
c#
使用进度条
加载
主
界面
采用进度条主
界面
,可详细反应主
界面
每一步
加载
情况(主要采用委托以及
线程
)
多
线程
异步
加载
数据过程
利用异步调用,及跨
线程
的处理技术,完全可以在不同
线程
或窗体上来显示
加载
数据过程,并在
加载
过程,可以随时终止,全过程实用用很强!
C#
111,131
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章