Skip to main content
All docs
V25.1
  • XtraReport.CreateDocumentAsync(CancellationToken) Method

    Asynchronously creates a document from an XtraReport to print or display this report.

    Namespace: DevExpress.XtraReports.UI

    Assembly: DevExpress.XtraReports.v25.1.dll

    NuGet Package: DevExpress.Reporting.Core

    Declaration

    public Task CreateDocumentAsync(
        CancellationToken token = default(CancellationToken)
    )

    Optional Parameters

    Name Type Default Description
    token CancellationToken null

    A cancellation token that the task observes.

    Returns

    Type Description
    Task

    A task that creates a report document.

    Remarks

    This method is equivalent to the CreateDocument() method, but does not lock other actions performed concurrently. For instance, the user interface remains operational while the application creates a report document.

    Call the CreateDocumentAsync method with the await operator.

    The optional CancellationToken parameter provides a way to send a cancellation signal to the task. The task monitors the token and stops when it receives the signal. Create a CancellationTokenSource class instance and pass its Token property to the CreateDocumentAsync method call. Call the CancellationTokenSource.Cancel method to stop the task.

    Example

    The code sample below creates a report document asynchronously. A CancellationTokenSource class instance is used to allow users to interrupt the document creation process if it takes too long.

    using DevExpress.XtraReports.UI;
    using System;
    using System.Threading;
    // ...
    // Use cancellationTokenSource to allow users to stop the document creation process.
    CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
    // ...
    async public void CreateReportAsync()
    {
        // Create a simple report.
        XtraReport report = new XtraReport() {
            Name = "SimpleReport",
            Bands = {
                new DetailBand() {
                    Controls = {
                        new XRLabel() {
                            Text = "Simple Report"
                        }
                    }
                }
            }
        };
        // Create a report document.
        await report.CreateDocumentAsync(cancellationTokenSource.Token);
    }
    
    See Also