การทำงานแบบอะซิงโครนัสกับไฟล์ PST

เพื่อเพิ่มความสามารถในการขยายและความตอบสนองในแอปพลิเคชันยุคใหม่ Aspose.Email สำหรับ .NET มีเมธอดแบบอะซิงโครนัสสำหรับทำงานกับไฟล์ PST APIs ใหม่เหล่านี้ช่วยให้นักพัฒนาสามารถสร้าง, เปิด, รวม, และแยกไฟล์ PST ได้โดยไม่บล็อกเธรดหลัก ทำให้เหมาะสำหรับแอปพลิเคชัน UI และบริการที่มีโหลดสูง

สร้างไฟล์ PST อย่างอะซิงโครนัส

นี้ PersonalStorage.CreateAsync เมธอดนี้อนุญาตให้คุณสร้างไฟล์ PST ใหม่แบบอะซิงโครนัส ทำให้การทำงานไม่บล็อกในแอปพลิเคชันที่ทำงานกับข้อมูลขนาดใหญ่หรือจำเป็นต้องมี UI ตอบสนอง ตัวอย่างโค้ดต่อไปนี้แสดงวิธีนำคุณลักษณะนี้ไปใช้ในโครงการ 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}");
}

เปิดไฟล์ PST อย่างอะซิงโครนัส

เพื่อเปิดไฟล์ PST ที่มีอยู่แบบอะซิงโครนัส ให้ใช้ PersonalStorage.FromFileAsync เมธอดของ Aspose.Email API ตัวอย่างโค้ดต่อไปนี้แสดงวิธีนำคุณลักษณะนี้ไปใช้ในโครงการ 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}");
}

รวมไฟล์ PST อย่างอะซิงโครนัส

นี้ MergeWithAsync เมธอดของ Aspose.Email PersonalStorage คลาสนี้อนุญาตให้คุณผสานเนื้อหาของไฟล์ PST หนึ่งเข้ากับอีกไฟล์หนึ่งแบบอะซิงโครนัส ซึ่งมีประโยชน์ในสถานการณ์เช่นการรวมคลังจดหมาย, การรวมสำเนาสำรอง, หรือการประมวลผลข้อมูลอีเมลเป็นชุดใหญ่โดยไม่บล็อกเธรดหลักของแอปพลิเคชัน ตัวอย่างโค้ดด้านล่างแสดงวิธีใช้เมธอดนี้ในโครงการ C# ของคุณ:

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.");
}

แยกไฟล์ PST อย่างอะซิงโครนัส

ตัวอย่างโค้ดด้านล่างแสดงวิธีเปิดไฟล์ PST ที่มีอยู่แบบอะซิงโครนัสโดยใช้ FromFileAsync, แล้วแยกเป็นหลายส่วนโดยใช้ SplitIntoAsync. แต่ละส่วนจะมีขนาดไม่เกิน 50 MB และจะบันทึกลงในไดเรกทอรีออกที่ระบุ การดำเนินการแบบอะซิงโครนัสทำให้มั่นใจว่าการทำงานจะไม่บล็อกเธรดหลัก ทำให้เหมาะกับแอปพลิเคชันที่ประมวลผลไฟล์ PST ขนาดใหญ่

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