C# 在此后台工作线程示例中,大文件复制不会使进度条前进

C# 在此后台工作线程示例中,大文件复制不会使进度条前进,c#,copy,progress-bar,backgroundworker,system.io.file,C#,Copy,Progress Bar,Backgroundworker,System.io.file,我使用的示例与答案中的定义完全相同,唯一的例外是我添加了一个文件扩展名。该文件扩展名引用了我放在“我的文档”文件夹中的文件(该示例在文件复制过程中将其用作源文件夹) 我用我的新扩展名1.8GB制作了这个文件。当运行此代码时,所有文件都可以正常复制。唯一的问题是,自从添加了新的扩展名和非常大的文件后,进度条根本没有进展 示例代码来自2006年,所以我想知道示例中是否有一些东西已经发展到可以处理更大的文件。或者文件扩展名大于3个字符 我怀疑问题可能在示例的这一部分: private clas

我使用的示例与答案中的定义完全相同,唯一的例外是我添加了一个文件扩展名。该文件扩展名引用了我放在“我的文档”文件夹中的文件(该示例在文件复制过程中将其用作源文件夹)

我用我的新扩展名1.8GB制作了这个文件。当运行此代码时,所有文件都可以正常复制。唯一的问题是,自从添加了新的扩展名和非常大的文件后,进度条根本没有进展

示例代码来自2006年,所以我想知道示例中是否有一些东西已经发展到可以处理更大的文件。或者文件扩展名大于3个字符

我怀疑问题可能在示例的这一部分:

    private class UIProgress
    {
        public UIProgress(string name_, long bytes_, long maxbytes_)
        {
            name = name_; bytes = bytes_; maxbytes = maxbytes_;
        }

        public string name;
        public long bytes;
        public long maxbytes;
    }

欣赏第二双眼睛。

看起来很眼熟。该代码按文件显示进度,而不是按文件大小。你需要完全不同的代码,这是Stephen Toub 2005年2月杂志文章的主题。下载它。你的链接带我到今年的所有文章。查找2005年的文章时,我下载了一个.CHM文件,当我搜索Toub时,它会找到.NET文件:文件复制进度、自定义线程池”。对它的搜索会让我陷入一个循环。你是否碰巧有一个链接包含了这篇文章的内容?我想这让我更接近了:我发现了使用IProgress的异步编程,并通过示例解决了这些问题。我有很多东西要学。
    private class UIProgress
    {
        public UIProgress(string name_, long bytes_, long maxbytes_)
        {
            name = name_; bytes = bytes_; maxbytes = maxbytes_;
        }

        public string name;
        public long bytes;
        public long maxbytes;
    }