【问题标题】:How execute multi functions in the same time in c#?c#如何同时执行多个函数?
【发布时间】:2018-03-08 09:18:02
【问题描述】:

我想构建加载表单,我将徽标设置为表单和进度条(对于进度条,我构建用户控件)。

这是我的代码:

private void frmLoading_Load(object sender, EventArgs e)
    {
        this.TransparencyKey = Color.Turquoise;
        this.BackColor = Color.Turquoise;
        pLogo.Image = Image.FromFile("Logo.png");
        Task.Factory.StartNew(() => Progress());
    }

private void Progress() {
        int sleepTime = 200;
        ucProgressBar.Minimum = 0;
        ucProgressBar.Maximum = 100;
        int value = 0;
        for (value = 0; value < 10; value++)
        {
            ucProgressBar.Value = value;
            Thread.Sleep(sleepTime);
        }
        ucProgressBar.Status = "Setting";

        for (value = 10; value < 20; value++)
        {
            ucProgressBar.Value = value;
            Thread.Sleep(sleepTime);
        }
        ucProgressBar.Status = "Printer";
    }

当它在第一个循环中执行时,它会提示错误:

“跨线程操作无效:控件 'ucProgressBar' 从创建它的线程以外的线程访问。”

感谢您的帮助!

【问题讨论】:

标签: c# multithreading forms


【解决方案1】:

执行多个功能的解决方案之一是使用 Task.WhenAll 但您的代码应为此正确重写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多