为什么我的BackgroundWork不起作用?

langya001 2012-09-27 05:28:21

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里的话又有效...救命呀~~~~~~~~~~~~~
...全文
145 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
langya001 2012-09-28
  • 打赏
  • 举报
回复

private void button2_Click(object sender, EventArgs 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();
}
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
//安装APK
//this.backgroundWorker1.RunWorkerAsync();

//执行

}



代码放到前面.这样就能运行..虽然会卡..
langya001 2012-09-28
  • 打赏
  • 举报
回复
确定是自己手工打的..光是函数名你也看得出呀.都是专用的函数..怎么可能复制..
lc_ant 2012-09-28
  • 打赏
  • 举报
回复
你不会是网上直接复制的吧
zhanglong19891129 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

调试了..完全不起作用..我还傻等了半天..看不到执行...
[/Quote]
完全不起 作用 是 什么意思?不能执行 backgroundWorker1_DoWork么?
那么是你没有绑定方法啊应该是..去隐藏代码中看看绑定好了没有 .就是desinger后缀名字的文件
langya001 2012-09-27
  • 打赏
  • 举报
回复
调试了..完全不起作用..我还傻等了半天..看不到执行...
zhanglong19891129 2012-09-27
  • 打赏
  • 举报
回复
不可能吧...你调试下呗,看是 不能运行 ONWOEK 还是怎么的..应该是不能运行的问题吧...
查看下 事件绑定..

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧