Windows桌面应用程序的多线程启动屏幕的设计技巧
2009-10-24 00:00:00 来源:WEB开发网双击“解决方案资源管理器”中项目节点下的“Properties”节点,在打开的项目属性卡片中设置程序的启动对象为Program类,这将确保程序从Main()函数开始执行。
下面向项目中添加一个将作为启动屏幕的窗体,可以根据你的美术天份自行设计,在本示例中,我就放了一个背景图片,一个TextBlock用于显示文字信息,一个ProgressBar用于显示工作进度。
很重要的,由于启动屏幕的窗体需要被主线程访问,因此,需要给其添加一个公有的方法用于显示外部传过来的信息
public void ShowProgress(int Value)
{
pgbProcess.Value = Value;
tbInfo.Text ="已完成"+ Value.ToString() + "%";
}
所有的关键工作由运行于主线程中的Main()函数完成。
[STAThread]
static void Main()
{
//在一个独立UI线程中显示启动屏幕
Thread th = new Thread(ShowSplashScreenThenMainWindow);
th.SetApartmentState(ApartmentState.STA);
th.Start();
//启动初始化过程
SystemInit();
}
注意需要设置线程模式为STA,这是为了与Windows Form相兼容而一直沿用下来的。
上述代码中的线程函数ShowSplashScreenThenMainWindow()负责创建启动屏幕和显示主窗体:
更多精彩
赞助商链接