为什么会出现异常:InvalidOperationException?

多伦·穆扎(Doron Muzar)

代码上有例外:

private void DownloadProgressCallback(object sender, DownloadProgressChangedEventArgs e)
{
   ActiveDownloadJob adJob = e.UserState as ActiveDownloadJob;
   if (adJob != null && adJob.ProgressBar != null)
   {
      adJob.ProgressBar.Invoke((Action)(() => adJob.ProgressBar.Value = e.ProgressPercentage));
   }
}

在线上:

adJob.ProgressBar.Invoke((Action)(() => adJob.ProgressBar.Value = e.ProgressPercentage));

这是form1中的ActiveDownloadJob类:

class ActiveDownloadJob
{
            public DownloadImages.DownloadData DownloadData;
            public ProgressBar ProgressBar;
            public WebClient WebClient;

            public ActiveDownloadJob(DownloadImages.DownloadData downloadData, ProgressBar progressBar, WebClient webClient)
            {
                try
                {
                    this.DownloadData = downloadData;
                    this.ProgressBar = progressBar;
                    this.WebClient = webClient;
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.ToString());
                }
            }
        }

我不确定我是否需要调用此行,因为我现在不使用backgroundworker,但我不确定。

这是完整的异常消息:在创建窗口句柄之前,无法在控件上调用Invoke或BeginInvoke

System.InvalidOperationException was unhandled by user code
  HResult=-2146233079
  Message=Invoke or BeginInvoke cannot be called on a control until the window handle has been created.
  Source=System.Windows.Forms
  StackTrace:
       at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
       at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
       at System.Windows.Forms.Control.Invoke(Delegate method)
       at WeatherMaps.Form1.DownloadProgressCallback(Object sender, DownloadProgressChangedEventArgs e) in d:\C-Sharp\WeatherMaps\WeatherMaps\WeatherMaps\Form1.cs:line 290
       at System.Net.WebClient.OnDownloadProgressChanged(DownloadProgressChangedEventArgs e)
       at System.Net.WebClient.ReportDownloadProgressChanged(Object arg)
  InnerException: 

我如何在不使用Invoke的情况下将该行更改为?如果需要Invoke,如何修复该行和异常?

我知道我应该在Form1表单关闭事件中处理它,但是如何?在form1表单关闭事件中我该怎么办?

斯里拉姆·萨克提维

是的,您会收到一个异常,因为Invoke需要将“消息”发布到“消息循环”,但Handle尚未创建。

使用InvokeRequired就看你是否需要Invoke,当调用它不会创建拉手又是那么直接,这将返回false。

var method = (Action)(() => adJob.ProgressBar.Value = e.ProgressPercentage);
if(adJob.ProgressBar.InvokeRequired)
    adJob.ProgressBar.Invoke(method);
else
    method();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

当我尝试输出数组时为什么会出现异常错误

来自分类Dev

为什么从xml读取元素时出现异常

来自分类Dev

为什么会出现异常“ IllegalArgumentException:''''行缺少结尾的引用”

来自分类Dev

为什么会出现此空指针异常?

来自分类Dev

为什么会出现NullPointerException?

来自分类Dev

为什么在出现异常后我的代码会不断重复自身?

来自分类Dev

为什么会出现CancelledKeyException?

来自分类Dev

为什么在Java中调用setXmlStandalone()方法时出现异常:abstructmethoderror?

来自分类Dev

为什么在自己的and函数实现中出现异常?

来自分类Dev

为什么会出现溢出?

来自分类Dev

当我尝试从具有多对多关系的表中获取数据时为什么会出现异常

来自分类Dev

AllowSynchronousIO设置为true,但仍会出现异常

来自分类Dev

为什么在线程错误中出现异常?

来自分类Dev

为什么在重新使用位图时总是出现异常?

来自分类Dev

为什么会出现异常“考虑使用DataContractResolver或将任何静态未知的类型添加到已知类型的列表中”

来自分类Dev

为什么在尝试读取.DOCX文件时出现异常?

来自分类Dev

为什么在使用toplink的JPQL连接查询中出现异常?

来自分类Dev

为什么会出现异常主“线程”错误?

来自分类Dev

插入记录时为什么会出现“重复条目”异常?

来自分类Dev

无法弄清楚为什么我的方法出现异常

来自分类Dev

为什么会出现输入不匹配异常?

来自分类Dev

为什么在尝试将所有图像从硬盘获取到列表时会出现异常?

来自分类Dev

为什么使用backgroundworker效果不佳,有时会出现异常?

来自分类Dev

为什么在检查打开的串行端口时会出现异常?

来自分类Dev

为什么会出现异常循环

来自分类Dev

为什么我在 .Net 中通过 npgsql 运行函数(存储过程)时出现异常?

来自分类Dev

为什么在尝试播放动画剪辑时出现异常 InvalidOperationException?

来自分类Dev

为什么尝试在编辑器窗口中进行垂直滚动时出现异常 InvalidOperationException: Stack empty.?

来自分类Dev

为什么在尝试使用 AutoMapper 时出现异常?

Related 相关文章

  1. 1

    当我尝试输出数组时为什么会出现异常错误

  2. 2

    为什么从xml读取元素时出现异常

  3. 3

    为什么会出现异常“ IllegalArgumentException:''''行缺少结尾的引用”

  4. 4

    为什么会出现此空指针异常?

  5. 5

    为什么会出现NullPointerException?

  6. 6

    为什么在出现异常后我的代码会不断重复自身?

  7. 7

    为什么会出现CancelledKeyException?

  8. 8

    为什么在Java中调用setXmlStandalone()方法时出现异常:abstructmethoderror?

  9. 9

    为什么在自己的and函数实现中出现异常?

  10. 10

    为什么会出现溢出?

  11. 11

    当我尝试从具有多对多关系的表中获取数据时为什么会出现异常

  12. 12

    AllowSynchronousIO设置为true,但仍会出现异常

  13. 13

    为什么在线程错误中出现异常?

  14. 14

    为什么在重新使用位图时总是出现异常?

  15. 15

    为什么会出现异常“考虑使用DataContractResolver或将任何静态未知的类型添加到已知类型的列表中”

  16. 16

    为什么在尝试读取.DOCX文件时出现异常?

  17. 17

    为什么在使用toplink的JPQL连接查询中出现异常?

  18. 18

    为什么会出现异常主“线程”错误?

  19. 19

    插入记录时为什么会出现“重复条目”异常?

  20. 20

    无法弄清楚为什么我的方法出现异常

  21. 21

    为什么会出现输入不匹配异常?

  22. 22

    为什么在尝试将所有图像从硬盘获取到列表时会出现异常?

  23. 23

    为什么使用backgroundworker效果不佳,有时会出现异常?

  24. 24

    为什么在检查打开的串行端口时会出现异常?

  25. 25

    为什么会出现异常循环

  26. 26

    为什么我在 .Net 中通过 npgsql 运行函数(存储过程)时出现异常?

  27. 27

    为什么在尝试播放动画剪辑时出现异常 InvalidOperationException?

  28. 28

    为什么尝试在编辑器窗口中进行垂直滚动时出现异常 InvalidOperationException: Stack empty.?

  29. 29

    为什么在尝试使用 AutoMapper 时出现异常?

热门标签

归档