winoform 页面假死-BackgroundWorker 页面假死

问题描述

BackgroundWorker 页面假死

大家好,我的程序要做的是这样的,这是一个主启动界面,页面启动后,后台去检查服务器上的版本。但是在进去这个主页面时,图片和文字都不显示(白屏),到最后才显示图片和文字,请教大家解决一下,我想要的效果,页面完全加载后(图片和文字都显示),再执行异步操作。
图片说明

public partial class frmStartProgress : Form
{
///
/// The configuration for the AppStart process.
///
private static AppStartConfiguration config = null;

    /// <summary>
    /// The process of the running application.
    /// </summary>
    private static Process applicationProcess;

    BackgroundWorker worker = new BackgroundWorker();

    public frmStartProgress()
    {
        InitializeComponent();
        config = (AppStartConfiguration)System.Configuration.ConfigurationManager.GetSection("appStart");
        label1.Text = string.Format("正在启动{0}系统,请稍候...", config.ApplicationName);
                    ---------【****文字没有显示****】
    }

    private void frmStartProgress_Load(object sender, EventArgs e)
    {
        ////  Grab our config instance which we use to read app.config params, figure out
        ////  WHERE our target app is and WHAT version          

        worker.WorkerReportsProgress = true;
        worker.DoWork += new DoWorkEventHandler(worker_DoWork);
        worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
        worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);
        worker.RunWorkerAsync();
    }

    void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
        this.progressBar1.Value = e.ProgressPercentage;
        this.label1.Text = e.UserState.ToString();
    }

    void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        this.Close();
    }

    void worker_DoWork(object sender, DoWorkEventArgs e)
    {
        StartAppProcess();
    }

    public delegate void AutoUpdateDelegate();

    private void ChangeThread(AutoUpdateDelegate aud)
    {
        if (this.InvokeRequired)
        {
            this.Invoke(aud);
        }
    }

    /// <summary>
    /// Main process code.
    /// </summary>

    private void StartAppProcess()
    {
        ClearUpdateVersionFiles();

        worker.ReportProgress(20, "正在检查是否有新的版本...");
                    ----【**文字没有显示**】

        bool processStarted = false;

        if (config.UpdateTime == UpdateTimeEnum.BeforeStart)
        {
            //UpdateApplication();
            ChangeThread(UpdateApplication);
        }

        //Start the application
        try
        {
            worker.ReportProgress(50, "正在初始化应用程序");
    ........【**文字开始显示,图片也显示**】

解决方案

还记得BackgroundWorker吗?
BackgroundWorker 摘录

解决方案二:

自己研究才是最深的理解………………

时间: 2024-11-01 22:26:33

winoform 页面假死-BackgroundWorker 页面假死的相关文章

怎么解决电脑死机或“假死”的现象

  注意以下问题可以解决避免大部分电脑死机或"假死"的现象: 1.在同一个硬盘上安装太多的操作系统会引起系统死机.最好重装前用PQ先格式化干净再装. 2.CPU.显示卡等配件不要超频过高,要注意温度,否则,在启动或运行时会莫名其妙地重启或死机.一般不要随便超频. 3.在更换电脑配件时,一定要插好,因为配件接触不良会引起系统死机. 4.BIOS设置要恰当,有时因突然断电等原因引起bios混乱,可通过放电或恢复出厂设置. 5.夏天晚上一般是用电高峰,电压不稳容易引起死机,最好配备稳压电源.

js-怎么在父页面修改二级子页面元素样式

问题描述 怎么在父页面修改二级子页面元素样式 我在父页面iframe了一个子页面.在子页面又Iframe了一个子页面,怎么在第一个父页面里修改最后一个子页面里元素的样式啊? 解决方案 iframe和父页,window.open打开页面之间的引用 解决方案二: ? String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+"

js-点击A页面链接,B页面无刷新加载内容

问题描述 点击A页面链接,B页面无刷新加载内容 比如百度音乐,在A页面不管点击多少个音乐,都只打开一个B页面并且无刷新加载播放.怎么用JS和其它编程语言来实现? 解决方案 <a target='musicBox' href=""/music"">播放1</a><a target='musicBox' href=""/music"">播放2</a><a target='mus

网页-用什么技术可以实现asp页面自动生成htm页面?

问题描述 用什么技术可以实现asp页面自动生成htm页面? 我的网站是用asp编写的,如何做到:在网页内容创建或者更新时自动生成静态HTML页面,以后的浏览全部引向静态页面?用什么技术去实现?可以向我推荐一些书籍! 解决方案 这个不是asp干的活,可以通过其他发布程序可以直接生成html页面的.百度下吧,现在发布成html页面的系统也比较多.asp页面最多是通过前端的web服务,可以配置成页面缓存. 解决方案二: 你可以是试一下asp.net的页面静态化,还是要写程序自动生成的 解决方案三: 全

WCF HTTP 错误 404.3 - Not Found(由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。)

错误信息: HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 最可能的原因: 可能是缺少处理程序映射.默认情况下,静态文件处理程序将处理所有内容. 您要使用的功能可能尚未安装. 没有为网站或应用程序启用相应的 MIME 映射.(警告: 请不要为用户不应下载的 .ASPX 页或 .config 文件等内容创建 MIME 映射.) 如果未安装 ASP.NET. 可尝试的操作: 在 s

使用Session记录页面地址和实现页面返回功能

session|页面 在开发过程中为了满足客户的要求要实现这样一个功能:在A页面内点击一个文字连接后进入C页面,在点击返回按钮后可以返回A页面,而在B页面也有该文字连接,点击后进入C页面,返回时则返回B页面(C页面内只能有一个返回按钮).为此想到了使用Session功能,就是向C页面跳转时记录下是从哪个页面跳过来的,然后点击返回按钮时对session的内容进行判断,从而决定是返回A页面还是B页面. 首先在A,B两个页面内要加入取得页面路径的代码 string url=Request.Curren

在Word 2010页面视图中显示页面间空白

在Word 2010文档中,用户可以根据需要隐藏或显示页面间的空白部分(即上下页边距,包括页眉和页脚的内容),具体设置 步骤如下所述: 第1步,打开Word 2010文档窗口,依次单击"文件"→"选项"按钮,如图2012022901所示. 图2012022901 单 击"选项"按钮 第2步,打开"Word选项"对话框,切换到"显示"选项卡.在"页面显示选项"区域选中 "在页面视

css实现刷新页面的同时保存页面控件的输入值

 css实现刷新页面的同时保存页面控件的输入值这个对于我们来讲是非常好用了,像有些页面不小心刷新了页面表单值就丢失了需要重新输入非常的麻烦,那么我们可以使用css来定义页面刷新值保存起来,具体设置如下.     在Head中加入<meta name="save" content="history"> 添加css: input{behavior:url(#default#savehistory)}; e.g. 页面上存在<input type=tex

word怎么将纵向页面改成横向页面

  word怎么将纵向页面改成横向页面 更改纸张方向 1.打开word,点击[页面布局],如下图. 2.点击[纸张方向],如下图,选择你需要的方向. 3.最终效果如下图所示. 更改纸张大小 1.点击[页面布局],如下图. 2.点击[纸张大小],如下图,下拉菜单中选择你想要的纸张大小,如A3,A4等 最终效果如下图.