C#,winform,怎样在一个页面显示前,首先先显示个等待提示?

小弟用C#写了个程序,winform,程序一起动,首先判断当天是否备份过数据库,如果没有备份,就执行备份,备份完后再显示登陆页面,现在的问题是,备份时间稍长,用户会以为死... 小弟用C#写了个程序,winform,程序一起动,首先判断当天是否备份过数据库,如果没有备份,就执行备份,备份完后再显示登陆页面,现在的问题是,备份时间稍长,用户会以为死机,所以请问高手们,怎样在登陆页面显示之前,显示给用户一个等待提示?????先50分送上.小弟还有分,可解决问题后,继续送,多谢了!!
知道的百度Hi联系 石一刀007 谢谢了。
展开
 我来答
卷卷贾超
2009-04-30 · TA获得超过1130个赞
知道小有建树答主
回答量:1037
采纳率:0%
帮助的人:515万
展开全部

简单的放上一张等待的GIF图片,然后提示等待,在执行备份前显示,备份好后影藏就好了

沧海V飞天
2009-04-30 · TA获得超过450个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:269万
展开全部
先在Main方法里启动一个模式窗体用于显示进度条 把备份数据库的操作放到这个窗体上 记得开个线程来备份 这个窗体上放一张动态的图片就可以了 备份完以后模式窗体为OK 启动主窗体
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
石一刀007
2009-04-30 · TA获得超过253个赞
知道答主
回答量:224
采纳率:0%
帮助的人:0
展开全部
谢谢,偶自己搞定了,
1.在预备页面里显示进度条,用timer控制进度,如果进度条进度到最大,在从0开始.
在开个线程,功能是备份数据库,在备份数据库的方法里判断如果备份完了,开个线程显示登陆页面.
ok了,谢谢 rockeylau
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Deeroad
2009-04-30 · 超过19用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:61.4万
展开全部
针对你的情况,我已经写了一个完整的程序,为了便于理解使用的是控制台程序,不过原理是一模一样的,只要改一下显示的方式,已经经过测试。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using System.Threading;

namespace Test
{
class Program
{
//标识备份是否完成
public static bool isComplete = false;

static void Main(string[] args)
{
//先备份数据库并显示等待信息
ShowWaitingInfo();
//开始运行主线程
//注意主线程与备份线程是并行的,因此主线程应该读取备份标识来判断是否开始运行
while (true)
{
if (!isComplete)
{
//未完成,等待一秒后继续判断知道完成
Thread.Sleep(1000);
}
else
{
break;//跳出循环
}
}
Console.WriteLine("主线程运行中...");
Console.ReadLine();
}

//显示等待信息
private static void ShowWaitingInfo()
{
Thread backup = new Thread(BackupDatabase);
backup.Start();
}

//备份数据库
public static void BackupDatabase()
{
isComplete = false;
//这里模拟备份需要5秒
Console.WriteLine("正在备份数据库,请稍后...");
Thread.Sleep(5000);
Console.WriteLine("备份完成!");
isComplete = true;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圣鸾OJ
2015-09-29 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:112万
展开全部
针对你的情况,我已经写了一个完整的程序,为了便于理解使用的是控制台程序,不过原理是一模一样的,只要改一下显示的方式,已经经过测试。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using System.Threading;

namespace Test
{
class Program
{
//标识备份是否完成
public static bool isComplete = false;

static void Main(string[] args)
{
//先备份数据库并显示等待信息
ShowWaitingInfo();
//开始运行主线程
//注意主线程与备份线程是并行的,因此主线程应该读取备份标识来判断是否开始运行
while (true)
{
if (!isComplete)
{
//未完成,等待一秒后继续判断知道完成
Thread.Sleep(1000);
}
else
{
break;//跳出循环
}
}
Console.WriteLine("主线程运行中...");
Console.ReadLine();
}

//显示等待信息
private static void ShowWaitingInfo()
{
Thread backup = new Thread(BackupDatabase);
backup.Start();
}

//备份数据库
public static void BackupDatabase()
{
isComplete = false;
//这里模拟备份需要5秒
Console.WriteLine("正在备份数据库,请稍后...");
Thread.Sleep(5000);
Console.WriteLine("备份完成!");
isComplete = true;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式