none
[WPF]关于在子线程中操作报ArgumentException异常的问题 RRS feed

  • 问题

  •        public static string ToXaml(FlowDocument fd)
            {
                MemoryStream s = new MemoryStream();
                TextRange tr = new TextRange(fd.ContentStart, fd.ContentEnd);
                tr.Save(s, DataFormats.XamlPackage);
                return Convert.ToBase64String(s.ToArray());
            }
     
            public static FlowDocument FromXaml(string buffer)
            {
                FlowDocument fd = new FlowDocument();
                MemoryStream s = new MemoryStream(Convert.FromBase64String(buffer));
                TextRange tr = new TextRange(fd.ContentStart, fd.ContentEnd);
                tr.Load(s, DataFormats.XamlPackage);
                return fd;
            }
    这是调用的两个方法,先是把richtextbox里的内容通过Toxaml(richtextbox.document)转成xamlpackage二 进制流存入数据库中,调用的时候用Fromxaml,主线程中调用没问题,创建了子线程调用这个方法,只要是带有图片的就提示格式错误,纯文字不会出错

    ##异常信息
    发生了 System.ArgumentException
      HResult=-2147024809
      Message=数据格式“XamlPackage”中无法识别的结构。
    参数名: stream
      Source=PresentationFramework
      ParamName=stream
      StackTrace:
           在 System.Windows.Documents.TextRangeBase.Load(TextRange thisRange, Stream stream, String dataFormat)
           在 System.Windows.Documents.TextRange.LoadVirtual(Stream stream, String dataFormat)
           在 System.Windows.Documents.TextRange.Load(Stream stream, String dataFormat)
           在 MyLife.Helper.XamlHelper.FromXaml(String buffer) 位置 e:\Documents\code\c#\Projects\MyLife\MyLife\Helper\XamlHelper.cs:行号 24
      InnerException: 
    
    

    请各位大神帮忙指点下~谢谢
    2014年7月18日 4:36

全部回复

  • 到底什么样的方式才能既保存图片到文件流中存入数据库,又能正常的在子线程中读取呢,找了很久都没找到解决方案
    2014年8月2日 2:00