C# 下载StringAySNC-不';没有进展

C# 下载StringAySNC-不';没有进展,c#,webclient,C#,Webclient,VS2008SP1 我正在使用下载的StringAySNC。但是ProgressChanged事件直到下载字符串后才显示进度 即使我尝试下载一个包含在大文件中的字符串。程序仍然是响应,所以我知道它正在做一些事情。但是,只有当进度完成时,才会触发progressChanged事件 我知道这就是progressChanged和DownloadStringFire。但是,它们应该是暂停,因为文件很大 这是我当前使用的代码段。和下面的输出。奇怪的是e.progresspercentage是100%。而且

VS2008SP1

我正在使用下载的StringAySNC。但是ProgressChanged事件直到下载字符串后才显示进度

即使我尝试下载一个包含在大文件中的字符串。程序仍然是响应,所以我知道它正在做一些事情。但是,只有当进度完成时,才会触发progressChanged事件

我知道这就是progressChanged和DownloadStringFire。但是,它们应该是暂停,因为文件很大

这是我当前使用的代码段。和下面的输出。奇怪的是e.progresspercentage是100%。而且似乎打了两次电话

非常感谢您的建议

Output in the progress changed event
Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Completed Version userstate: [ Version1 ]


private void UpdateAvailable()
        {
            WebClient wbCheckUpdates = new WebClient();
            wbCheckUpdates.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wbCheckUpdates_DownloadProgressChanged);
            wbCheckUpdates.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wbCheckUpdates_DownloadStringCompleted);
            DownloadFiles df = new DownloadFiles();
            string webServerURL = df.webServerPath;

            wbCheckUpdates.DownloadStringAsync(new Uri(Path.Combine(webServerURL, "version.txt")), "Version1"); 
        }




void wbCheckUpdates_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            Console.WriteLine("Progress version changed userstate: [ " + e.UserState + " ]");
            progressBar1.Value = e.ProgressPercentage;
            Console.WriteLine("progressBar1.Value [ " + this.progressBar1.Value + " ]");
        }

void wbCheckUpdates_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            Console.WriteLine("Completed version userstate: [ " + e.UserState + " ]");
        }
=============使用DownloadDataAysnc编辑===============

wbCheckUpdates.DownloadDataAsync(new Uri(Path.Combine(webServerURL, "version.txt")), "Version1");


void wbCheckUpdates_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
        {
            byte[] result = e.Result;           
            Console.WriteLine("Completed data: [ " + System.Text.ASCIIEncoding.Default.GetString(result) + " ]");
        }
结果是一样的:

Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Progress changed Version userstate: [ Version1 ]
progressBar1.Value [ 100 ]
Completed data: [ 1.0.11 ]

根据文档,DownloadStringAsync不报告进度。请参阅的文档。

只是好奇:在您的代码中,方法签名是否真的从括号中缩进了八个空格?以前每当我看到这一点时,我都认为输入代码是错误的,但我发现您的代码无处不在。您好,我刚刚在问题中编辑了我的源代码。现在我正在使用下载的dataaysnc。根据该网站的说法,应该显示出进展。然而,结果是一样的。谢谢