为什么我的BackgroundWork不起作用?
private void button2_Click(object sender, EventArgs e)
{
//安装APK
this.backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
//安装APK
//this.backgroundWorker1.RunWorkerAsync();
System.Diagnostics.Process InstallApk = new System.Diagnostics.Process();
InstallApk.StartInfo.FileName = Application.StartupPath + @"\tools\adb.exe";
InstallApk.StartInfo.UseShellExecute = false;
InstallApk.StartInfo.RedirectStandardInput = true;
InstallApk.StartInfo.RedirectStandardOutput = true;
InstallApk.StartInfo.RedirectStandardError = false;
InstallApk.StartInfo.CreateNoWindow = true;
System.IO.DirectoryInfo ApkFolder = new System.IO.DirectoryInfo(Application.StartupPath + @"\apk");
foreach (System.IO.FileInfo ApkFile in ApkFolder.GetFiles("*.apk", System.IO.SearchOption.AllDirectories))
{
InstallApk.StartInfo.Arguments = "install -r " + @"apk\" + ApkFile.Name;
InstallApk.Start();
InstallApk.WaitForExit();
//通过这个函数将处理的百分比传递给进度条控件
//this.backgroundWorker1.ReportProgress();
label1.Text += ApkFile.Name + "安装完成!\n";
label1.Update();
InstallApk.Close();
}
//执行
}
这样不起作用.我如果把DoWork里的代码复制到Click里的话又有效...救命呀~~~~~~~~~~~~~
...全文
相关推荐
C#如何使用BackgroundWork后台辅助线程控件
C#如何使用BackgroundWork后台辅助线程控件 不可多得的好文档
后台backgroundwork使用实例
后台backgroundwork使用实例,包含了如何直接使用,同时包含了进度条代码设计,可以以进度条形式显示任务执行的进度
C# backgroundwork 委托
学习如何使用backgroundwork 如何使用委托 vs2008编译通过
backgroundwork使用,xml的生成与读取
后台控件,可开启后台进程,进行一些耗时操作,或者做流程控制,源码中包括窗体控件中的内容,转化为xml文件;xml文件中的内容读取出来,显示在窗体控件上
BackgroundWork.zip
在WinForm程序中,当程序正在执行耗时的任务时,Form会出现用户界面停止响应的情况;有时候需要在界面上显示后台运行的进度,比如说ProgressBar。这时候可以新建一个线程,把耗时的任务放到线程中,也可以通过BackgroundWork来实现,并且BackgroundWork理解起来比较容易。



