C#,winform,怎样在一个页面显示前,首先先显示个等待提示?
小弟用C#写了个程序,winform,程序一起动,首先判断当天是否备份过数据库,如果没有备份,就执行备份,备份完后再显示登陆页面,现在的问题是,备份时间稍长,用户会以为死...
小弟用C#写了个程序,winform,程序一起动,首先判断当天是否备份过数据库,如果没有备份,就执行备份,备份完后再显示登陆页面,现在的问题是,备份时间稍长,用户会以为死机,所以请问高手们,怎样在登陆页面显示之前,显示给用户一个等待提示?????先50分送上.小弟还有分,可解决问题后,继续送,多谢了!!
知道的百度Hi联系 石一刀007 谢谢了。 展开
知道的百度Hi联系 石一刀007 谢谢了。 展开
9个回答
展开全部
先在Main方法里启动一个模式窗体用于显示进度条 把备份数据库的操作放到这个窗体上 记得开个线程来备份 这个窗体上放一张动态的图片就可以了 备份完以后模式窗体为OK 启动主窗体
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
谢谢,偶自己搞定了,
1.在预备页面里显示进度条,用timer控制进度,如果进度条进度到最大,在从0开始.
在开个线程,功能是备份数据库,在备份数据库的方法里判断如果备份完了,开个线程显示登陆页面.
ok了,谢谢 rockeylau
1.在预备页面里显示进度条,用timer控制进度,如果进度条进度到最大,在从0开始.
在开个线程,功能是备份数据库,在备份数据库的方法里判断如果备份完了,开个线程显示登陆页面.
ok了,谢谢 rockeylau
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
针对你的情况,我已经写了一个完整的程序,为了便于理解使用的是控制台程序,不过原理是一模一样的,只要改一下显示的方式,已经经过测试。
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;
}
}
}
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;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
针对你的情况,我已经写了一个完整的程序,为了便于理解使用的是控制台程序,不过原理是一模一样的,只要改一下显示的方式,已经经过测试。
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;
}
}
}
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;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询