c# - 进度条显示方法的执行

标签 c# multithreading compact-framework

我不知道如何在Compact .Net Framework中显示方法的执行。
例如,我有一个方法(例如 Upload() Print())需要一些时间(在某些情况下这是一个很大的时间间隔)才能完成。我希望用户可以看到时间的进展进度条上的耗时任务(例如 Upload())。

我试图用ThreadThreadPool.QueueUserWorkItembut做到这一点,但我被卡住了。
问题是我不知道如何同步方法和进度条的线程。

请帮忙。

最佳答案

希望对您有所帮助:

ProgressBar pg = new ProgressBar();
pg.Maximum = 100;
pg.Step = 1;

this.Controls.Add(pg);

new Thread(new ThreadStart(() =>
    {
        // Replace with your code:
        for (int i = 0; i < 100; i++)
        {
            if (pg.InvokeRequired)
                pg.Invoke(new ThreadStart(() =>
                    {
                        pg.PerformStep();
                    }));
            else
                pg.PerformStep();
        }
    })).Start();

这部分很重要,否则您将获得异常(exception):
if (pg.InvokeRequired)
    pg.Invoke(new ThreadStart(() =>
        {
            pg.PerformStep();
        }));
else
    pg.PerformStep();

关于c# - 进度条显示方法的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4794074/

相关文章:

c# - 以编程方式过滤 Outlook 2010 加载项中的联系人

java - 使用线程池创建一个等待来自客户端的消息的java服务器套接字

c++ - C++ mutex 和 RTOS xMutex 的区别

.net cf - 以编程方式启动资源管理器

.net - .NET Compact Framework 是否有流行的单元测试框架?

c# - Symbol MC32N0 从 CE 6.0 升级到 WEC7 : "Unsupported System Version"

c# - 使用 SharpSsh 在 ssh 中发送类似 Ctrl+A 的 key

c# - 带有泛型的 ASP.NET MVC View /部分

c# - FlipView 中的 DataTemplate 有 2 个 UserControl,一次一个

java - 为什么最后一个线程没有被中断?