Các Hoạt động Bất đồng bộ với Tệp PST

Để nâng cao khả năng mở rộng và tính phản hồi trong các ứng dụng hiện đại, Aspose.Email cho .NET cung cấp các phương thức bất đồng bộ để làm việc với tệp PST. Các API mới này cho phép nhà phát triển tạo, mở, hợp nhất và chia tệp PST mà không chặn luồng chính, làm cho chúng phù hợp với các ứng dụng giao diện người dùng và dịch vụ tải cao.

Tạo Tệp PST Bất đồng bộ

Cái PersonalStorage.CreateAsync phương thức cho phép bạn tạo một tệp PST mới một cách bất đồng bộ, cho phép thực thi không chặn trong các ứng dụng làm việc với dữ liệu lớn hoặc yêu cầu giao diện người dùng phản hồi nhanh. Đoạn mã mẫu sau đây minh họa cách triển khai tính năng này vào dự án C#.

string pstFilePath = "newMailbox.pst";
var format = FileFormatVersion.Unicode;

// Create a new PST file asynchronously
using (var pst = await PersonalStorage.CreateAsync(pstFilePath, format, CancellationToken.None))
{
     Console.WriteLine($"PST file created at: {pstFilePath}");
}

Mở Tệp PST Bất đồng bộ

Để mở một tệp PST hiện có một cách bất đồng bộ, sử dụng PersonalStorage.FromFileAsync phương thức của API Aspose.Email. Đoạn mã mẫu sau đây minh họa cách triển khai tính năng này vào dự án C#.

string pstFilePath = "newMailbox.pst";
var format = FileFormatVersion.Unicode;

// Open the PST file asynchronously
        using (var pst = await PersonalStorage.FromFileAsync(pstFilePath, CancellationToken.None))
        {
            Console.WriteLine("PST file opened successfully.");

            // Access folders or messages here
            Console.WriteLine($"Root folder name: {pst.RootFolder.DisplayName}");
}

Hợp nhất Tệp PST Bất đồng bộ

Cái MergeWithAsync phương thức của Aspose.Email PersonalStorage lớp cho phép bạn hợp nhất nội dung của một tệp PST vào tệp PST khác một cách bất đồng bộ. Điều này hữu ích trong các kịch bản như hợp nhất kho lưu trữ thư, kết hợp sao lưu, hoặc xử lý dữ liệu email hàng loạt - mà không chặn luồng chính của ứng dụng. Đoạn mã mẫu dưới đây minh họa cách sử dụng phương pháp này trong dự án C# của bạn:

string targetPstPath = "mainMailbox.pst";
string sourcePstPath = "archiveToMerge.pst";

// Open both PST files asynchronously
using (var targetPst = await PersonalStorage.FromFileAsync(targetPstPath, CancellationToken.None))
using (var sourcePst = await PersonalStorage.FromFileAsync(sourcePstPath, CancellationToken.None))
{
    // Merge the source PST into the target PST
    await targetPst.MergeWithAsync(sourcePst, CancellationToken.None);

    Console.WriteLine("Merge operation completed successfully.");
}

Chia Tệp PST Bất đồng bộ

Đoạn mã mẫu dưới đây minh họa cách mở bất đồng bộ một tệp PST hiện có bằng cách sử dụng FromFileAsync, và sau đó chia nó thành nhiều phần bằng cách sử dụng SplitIntoAsync. Mỗi phần sẽ không lớn hơn 50 MB và được lưu vào thư mục đầu ra được chỉ định. Thực thi bất đồng bộ đảm bảo hoạt động không chặn luồng chính, làm cho nó phù hợp với các ứng dụng xử lý các kho lưu trữ PST lớn.

using (var pst = await PersonalStorage.FromFileAsync("input.pst"))
{
    await pst.SplitIntoAsync(50 * 1024 * 1024, "part_", "outputDirectory", CancellationToken.None);
}