如何取消正在进行的XslTransform.Transform

时间:2014-02-25 22:48:24

标签: c# .net xslt

所以一旦你开始长时间运行的XslTransform.Transform,你如何中止呢?

    XslTransform XslTransform = new XslTransform();

    XmlDocument stylesheetDocument = new XmlDocument();
    //TODO: Handle error when styhlesheet doe snot exist
    stylesheetDocument.LoadXml(stylesheetXml);
    XslTransform.Load(stylesheetDocument.CreateNavigator());

    FileStream FileStream = new FileStream(outputDocument.Path, FileMode.Create);
    try
    {
        XslTransform.Transform(inputXmlDocument, XsltArgumentList, FileStream); // raises XSLTException
    }
    catch (XsltException xsltException)
    {
        MessageBox.Show(xsltException.Message);
    }
    catch (XPathException xPathException)
    {
        MessageBox.Show(xPathException.Message);
    }
    catch (Exception)
    {

        throw;
    }

    FileStream.Close();

1 个答案:

答案 0 :(得分:0)

不幸的是,Transform调用不是异步的。

您需要在另一个线程中进行转换。然后,当需要取消转换工作程序时,您的主线程必须终止它。