Winform 多线程的问题,急,没解决不结贴!分数不是问题!!

DataBox-MDX 2011-07-07 05:42:13
目前遇到的问题:
现在在做一个登录界面,当点击确定时,因为登录的时候要匹配很多信息,所以要等很久才出来主窗体。且鼠标点击就卡死。

求解决的办法:
现在我想另外定义一个线程,在点击确定按钮时,用一个Label动态显示我当前后台正在处理的操作的文字名称。这样给用户一种很好的用户体验。当后台处理完后才出现主窗体。

疑问:我在网上了解到可以另外定义一个线程以进度条的形式来显示处理过程,但是没有文字显示,我想用文字显示后台处理的过程。不知道这样行不?

分数不是问题
...全文
171 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2011-07-19
  • 打赏
  • 举报
回复
SuperTyro 2011-07-19
  • 打赏
  • 举报
回复
通过 反插入委托方式(观察者)
子线程在每个阶段调用从主线程中委托来方法,并传入阶段信息让主线程去显示。
liuwei2500 2011-07-19
  • 打赏
  • 举报
回复
弄一个进度条固然是友好,但是我觉得这个没有从根本上面解决问题,用户等待的时间其实是一样的。
我之前写的软件有个导出数据的时候采用进度条,客户仍旧无法忍受。
后来采用其他方法,在用户进行一些操作的时候就顺便写文件,最后拷贝文件,后面导出就会感觉很快,

你完全可以在用户输入玩账户密码之后,就验证得到信息,等点击确定之后就进入主界面。
liangyong1107 2011-07-19
  • 打赏
  • 举报
回复
显示加载进度,弄个滚动条,友好些。。
chxg99 2011-07-19
  • 打赏
  • 举报
回复
mark,占位
DataBox-MDX 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tuliebiao 的回复:]
可以在点登陆以后显示一个等待的tif图片,并隐藏登陆界面,这样就不会给用户死机的感觉!

或者用多线程在登录窗口的下方显示程序加载进度!这样让用户知道程序的运行进度;这两个方法都很简单吧!
[/Quote]
我不要程序运行的进度,我要查看程序后台处理操作的名称,当然这些名称是我自己定义的。
求例子
lyou250 2011-07-07
  • 打赏
  • 举报
回复
 public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

Thread thread;
private delegate void DelText(string text);
private void Form1_Load(object sender, EventArgs e)
{
thread = new Thread(new ThreadStart(showText));
thread.Start();
}

private void showText()
{
for (long i = 0; i <= 1000000000; i++)
{
this.Invoke(new DelText(setText),new object[]{i.ToString()});
}
}

private void setText(string text)
{
label1.Text = text;
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
thread.Abort();
}


}
缭绕飘渺 2011-07-07
  • 打赏
  • 举报
回复
今天看到谷歌搜索出预读取了
楼主是不是也可以预读取下
程序一启动先把需要比较的信息读取过来
放到本地或者直接放内存中
然后用户点确定后直接跟本地信息比较
求证 2011-07-07
  • 打赏
  • 举报
回复
可以在点登陆以后显示一个等待的tif图片,并隐藏登陆界面,这样就不会给用户死机的感觉!

或者用多线程在登录窗口的下方显示程序加载进度!这样让用户知道程序的运行进度;这两个方法都很简单吧!
wangxiao2008 2011-07-07
  • 打赏
  • 举报
回复
行,用代理就可以了。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧