หยุดการแปลงหรือการโหลดโดยใช้ Interrupt Monitor

การแนะนำ

การทำงานกับไฟล์ Excel ขนาดใหญ่ มักเกี่ยวข้องกับกระบวนการที่ยาวนานซึ่งอาจกินเวลาและทรัพยากร แต่จะเกิดอะไรขึ้นหากคุณสามารถหยุดกระบวนการแปลงระหว่างทางเมื่อคุณรู้ว่ามีบางอย่างที่ต้องเปลี่ยนแปลง Aspose.Cells สำหรับ .NET มีคุณลักษณะที่เรียกว่า Interrupt Monitor ซึ่งช่วยให้คุณสามารถหยุดการแปลงสมุดงานเป็นรูปแบบอื่น เช่น PDF ได้ ซึ่งอาจช่วยชีวิตได้ โดยเฉพาะเมื่อทำงานกับไฟล์ข้อมูลขนาดใหญ่ ในคู่มือนี้ เราจะแนะนำวิธีหยุดกระบวนการแปลงโดยใช้ Interrupt Monitor ใน Aspose.Cells สำหรับ .NET

ข้อกำหนดเบื้องต้น

ก่อนที่จะดำน้ำ ให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:

  1. Aspose.Cells สำหรับ .NET - ดาวน์โหลดที่นี่.
  2. สภาพแวดล้อมการพัฒนา .NET เช่น Visual Studio
  3. ความรู้พื้นฐานเกี่ยวกับการเขียนโปรแกรม C# - ความคุ้นเคยกับรูปแบบไวยากรณ์ C# จะช่วยให้คุณทำตามได้

แพ็คเกจนำเข้า

ในการเริ่มต้น ให้เราทำการอิมพอร์ตแพ็คเกจที่จำเป็น ซึ่งได้แก่:

  • Aspose.Cells: ไลบรารีหลักสำหรับจัดการไฟล์ Excel
  • System.Threading: สำหรับการจัดการเธรด เนื่องจากตัวอย่างนี้จะรันกระบวนการคู่ขนานสองกระบวนการ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;

มาแบ่งกระบวนการออกเป็นขั้นตอนโดยละเอียด แต่ละขั้นตอนจะช่วยให้คุณเข้าใจถึงความสำคัญของการตั้งค่าและการใช้ Interrupt Monitor ในการจัดการการแปลงเวิร์กบุ๊ก Excel

ขั้นตอนที่ 1: สร้างคลาสและตั้งค่าไดเร็กทอรีเอาท์พุต

ขั้นแรก เราต้องมีคลาสเพื่อรวมฟังก์ชันของเราไว้พร้อมกับไดเร็กทอรีที่จะบันทึกไฟล์เอาต์พุต

class StopConversionOrLoadingUsingInterruptMonitor
{
    static string outputDir = "Your Document Directory";
}

แทนที่"Your Document Directory" ด้วยเส้นทางจริงที่คุณต้องการบันทึกไฟล์ PDF

ขั้นตอนที่ 2: สร้าง Interrupt Monitor ทันที

ขั้นตอนต่อไปคือสร้างอ็อบเจ็กต์ InterruptMonitor มอนิเตอร์นี้จะช่วยควบคุมกระบวนการโดยตั้งค่าความสามารถในการขัดจังหวะที่จุดใดก็ได้

InterruptMonitor im = new InterruptMonitor();

ตัวตรวจสอบการขัดจังหวะนี้จะแนบมากับเวิร์กบุ๊กของเรา ซึ่งช่วยให้เราสามารถจัดการกระบวนการแปลงได้

ขั้นตอนที่ 3: ตั้งค่าเวิร์กบุ๊กสำหรับการแปลง

ตอนนี้มาสร้างวัตถุเวิร์กบุ๊ก กำหนด InterruptMonitor ให้กับมัน แล้วเข้าถึงเวิร์กชีตแรกเพื่อแทรกข้อความตัวอย่าง

void CreateWorkbookAndConvertItToPdfFormat()
{
    Workbook wb = new Workbook();
    wb.InterruptMonitor = im;
    Worksheet ws = wb.Worksheets[0];
    Cell cell = ws.Cells["J1000000"];
    cell.PutValue("This is text.");
}

โค้ดด้านบนจะสร้างเวิร์กบุ๊ก ตั้งค่า InterruptMonitor ให้กับเวิร์กบุ๊ก และวางข้อความไว้ในเซลล์ที่อยู่ไกลออกไป (J1000000) การวางข้อความในตำแหน่งเซลล์นี้จะทำให้การประมวลผลเวิร์กบุ๊กใช้เวลานานขึ้น ทำให้ InterruptMonitor มีเวลาเพียงพอในการแทรกแซง

ขั้นตอนที่ 4: บันทึกสมุดงานเป็น PDF และจัดการการขัดจังหวะ

ตอนนี้เรามาลองบันทึกสมุดงานเป็น PDF กัน เราจะใช้try-catch บล็อคเพื่อจัดการกับการขัดจังหวะใดๆ ที่อาจเกิดขึ้น

try
{
    wb.Save(outputDir + "output_InterruptMonitor.pdf");
}
catch (Aspose.Cells.CellsException ex)
{
    Console.WriteLine("Process Interrupted - Message: " + ex.Message);
}

หากกระบวนการถูกขัดจังหวะ ข้อยกเว้นจะตรวจจับและแสดงข้อความที่เหมาะสม มิฉะนั้น เวิร์กบุ๊กจะบันทึกเป็น PDF

ขั้นตอนที่ 5: ขัดจังหวะกระบวนการแปลง

คุณสมบัติหลักที่นี่คือความสามารถในการขัดจังหวะกระบวนการ เราจะเพิ่มการหน่วงเวลาโดยใช้Thread.Sleep แล้วโทรไปที่Interrupt() วิธีการหยุดการแปลงหลังจาก 10 วินาที

void WaitForWhileAndThenInterrupt()
{
    Thread.Sleep(1000 * 10);
    im.Interrupt();
}

การหน่วงเวลานี้จะทำให้เวิร์กบุ๊กมีเวลาเริ่มแปลงเป็น PDF ก่อนที่จะส่งสัญญาณขัดจังหวะ

ขั้นตอนที่ 6: ดำเนินการเธรดพร้อมกัน

ในการรวบรวมทุกอย่างเข้าด้วยกัน เราจำเป็นต้องเริ่มทั้งสองฟังก์ชันในเธรดที่แยกจากกัน วิธีนี้จะทำให้การแปลงเวิร์กบุ๊กและการรอการขัดจังหวะเกิดขึ้นพร้อมกันได้

public void TestRun()
{
    ThreadStart ts1 = new ThreadStart(this.CreateWorkbookAndConvertItToPdfFormat);
    Thread t1 = new Thread(ts1);
    t1.Start();
    ThreadStart ts2 = new ThreadStart(this.WaitForWhileAndThenInterrupt);
    Thread t2 = new Thread(ts2);
    t2.Start();
    t1.Join();
    t2.Join();
}

โค้ดด้านบนทำงานCreateWorkbookAndConvertItToPdfFormat และWaitForWhileAndThenInterrupt ในเธรดคู่ขนาน โดยรวมเข้าด้วยกันเมื่อทั้งสองกระบวนการเสร็จสิ้น

ขั้นตอนที่ 7: การดำเนินการขั้นสุดท้าย

สุดท้ายนี้เราจะเพิ่มRun() วิธีการในการดำเนินการรหัส

public static void Run()
{
    new StopConversionOrLoadingUsingInterruptMonitor().TestRun();
    Console.WriteLine("StopConversionOrLoadingUsingInterruptMonitor executed successfully.");
}

นี้Run วิธีการดังกล่าวเป็นจุดเริ่มต้นและสังเกตการขัดจังหวะในการดำเนินการ

บทสรุป

ในบทช่วยสอนนี้ เราได้ศึกษาวิธีการหยุดกระบวนการแปลงใน Aspose.Cells สำหรับ .NET Interrupt Monitor เป็นเครื่องมือที่มีประโยชน์เมื่อทำงานกับไฟล์ Excel ขนาดใหญ่ โดยช่วยให้คุณหยุดกระบวนการได้โดยไม่ต้องรอให้กระบวนการเสร็จสิ้น ซึ่งมีประโยชน์อย่างยิ่งในสถานการณ์ที่เวลาและทรัพยากรมีค่า และจำเป็นต้องมีข้อเสนอแนะอย่างรวดเร็ว

คำถามที่พบบ่อย

Interrupt Monitor ใน Aspose.Cells สำหรับ .NET คืออะไร?

Interrupt Monitor ช่วยให้คุณหยุดการแปลงเวิร์กบุ๊กหรือโหลดกระบวนการระหว่างทางได้

ฉันสามารถใช้ Interrupt Monitor สำหรับรูปแบบอื่นนอกเหนือจาก PDF ได้หรือไม่

ใช่ คุณสามารถหยุดการแปลงไปเป็นรูปแบบที่รองรับอื่นได้เช่นกัน

Thread.Sleep() ส่งผลต่อเวลาการขัดจังหวะอย่างไร

Thread.Sleep() สร้างการหน่วงเวลาไว้ก่อนจะทริกเกอร์การขัดจังหวะ เพื่อให้มีเวลาเพียงพอในการเริ่มต้นการแปลง

ฉันสามารถขัดจังหวะกระบวนการก่อน 10 วินาทีได้ไหม

ใช่ครับ แก้ไขการหน่วงเวลาครับWaitForWhileAndThenInterrupt() เป็นเวลาสั้นลง

กระบวนการขัดจังหวะจะมีผลกระทบต่อประสิทธิภาพการทำงานหรือไม่?

ผลกระทบนั้นน้อยมากและเป็นประโยชน์อย่างยิ่งในการจัดการกระบวนการที่ดำเนินมายาวนาน สำหรับข้อมูลเพิ่มเติมโปรดดูที่เอกสาร Aspose.Cells สำหรับ .NET หากคุณต้องการความช่วยเหลือ โปรดดูฟอรั่มสนับสนุนหรือรับทดลองใช้งานฟรี.