Stop conversie of laden met behulp van Interrupt Monitor

Invoering

Werken met grote Excel-bestanden gaat vaak gepaard met langdurige processen die veel tijd en middelen kosten. Maar wat als u het conversieproces halverwege kunt stoppen als u zich realiseert dat er iets moet worden gewijzigd? Aspose.Cells voor .NET heeft een functie genaamd Interrupt Monitor, waarmee u de conversie van een werkmap naar een ander formaat, zoals PDF, kunt onderbreken. Dit kan een levensredder zijn, vooral bij het werken met grote gegevensbestanden. In deze handleiding leggen we uit hoe u het conversieproces kunt onderbreken met behulp van de Interrupt Monitor in Aspose.Cells voor .NET.

Vereisten

Zorg ervoor dat u het volgende op orde heeft voordat u aan de slag gaat:

  1. Aspose.Cells voor .NET - Downloadenhier.
  2. .NET-ontwikkelomgeving - zoals Visual Studio.
  3. Basiskennis van C#-programmering: vertrouwdheid met de C#-syntaxis helpt u de cursus te volgen.

Pakketten importeren

Laten we om te beginnen de benodigde pakketten importeren. Deze imports omvatten:

  • Aspose.Cells: De hoofdbibliotheek voor het bewerken van Excel-bestanden.
  • System.Threading: Voor het beheren van threads, aangezien dit voorbeeld twee parallelle processen zal uitvoeren.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;

Laten we het proces opsplitsen in gedetailleerde stappen. Elke stap helpt u het belang te begrijpen van het instellen en gebruiken van de Interrupt Monitor voor het beheren van Excel-werkmapconversie.

Stap 1: Maak de klasse en stel de uitvoermap in

Eerst hebben we een klasse nodig om onze functies in te kapselen, samen met een map waarin het uitvoerbestand wordt opgeslagen.

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

Vervangen"Your Document Directory" met het daadwerkelijke pad waar u het PDF-bestand wilt opslaan.

Stap 2: Instantieer de Interrupt Monitor

Maak vervolgens een InterruptMonitor-object. Deze monitor helpt het proces te controleren door de mogelijkheid in te stellen om het op elk gewenst moment te onderbreken.

InterruptMonitor im = new InterruptMonitor();

Deze interruptmonitor wordt aan onze werkmap gekoppeld, zodat we het conversieproces kunnen beheren.

Stap 3: Stel de werkmap in voor conversie

Nu gaan we een werkmapobject maken, hieraan de InterruptMonitor toewijzen en vervolgens het eerste werkblad openen om wat voorbeeldtekst in te voegen.

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

De bovenstaande code maakt een werkmap, stelt de InterruptMonitor hiervoor in en plaatst tekst in een verre cel (J1000000Als u tekst op deze celpositie plaatst, kost het verwerken van de werkmap meer tijd, waardoor de InterruptMonitor voldoende tijd heeft om in te grijpen.

Stap 4: Werkmap opslaan als PDF en onderbrekingen verwerken

Laten we nu proberen de werkmap op te slaan als een PDF. We gebruiken eentry-catch blok om eventuele onderbrekingen af te handelen.

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

Als het proces wordt onderbroken, zal de uitzondering dit opvangen en een passend bericht weergeven. Anders zal de werkmap worden opgeslagen als een PDF.

Stap 5: Onderbreek het conversieproces

De belangrijkste functie hier is de mogelijkheid om het proces te onderbreken. We voegen een vertraging toe met behulp vanThread.Sleep en dan bellen naar deInterrupt() Methode om de conversie na 10 seconden te stoppen.

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

Deze vertraging geeft de werkmap de tijd om te beginnen met converteren naar PDF voordat het onderbrekingssignaal wordt verzonden.

Stap 6: Voer de threads gelijktijdig uit

Om alles samen te brengen, moeten we beide functies in aparte threads starten. Op deze manier kunnen de workbook-conversie en de interrupt wait gelijktijdig plaatsvinden.

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();
}

De bovenstaande code wordt uitgevoerdCreateWorkbookAndConvertItToPdfFormat EnWaitForWhileAndThenInterrupt in parallelle threads en deze samenvoegen zodra beide processen voltooid zijn.

Stap 7: Definitieve uitvoering

Ten slotte voegen we eenRun() Methode om de code uit te voeren.

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

DitRun De methode is het startpunt om de onderbreking in de actie te starten en te observeren.

Conclusie

In deze tutorial hebben we onderzocht hoe u het conversieproces in Aspose.Cells voor .NET kunt onderbreken. De Interrupt Monitor is een handige tool bij het werken met grote Excel-bestanden, waarmee u processen kunt stoppen zonder te wachten tot ze zijn voltooid. Dit is vooral handig in scenario’s waarin tijd en middelen kostbaar zijn en snelle feedback nodig is.

Veelgestelde vragen

Wat is een interruptmonitor in Aspose.Cells voor .NET?

Met de Interrupt Monitor kunt u een werkmapconversie of laadproces halverwege stoppen.

Kan ik Interrupt Monitor gebruiken voor andere formaten dan PDF?

Ja, u kunt ook conversies naar andere ondersteunde formaten onderbreken.

Hoe beïnvloedt Thread.Sleep() de interrupt-timing?

Thread.Sleep() zorgt voor een vertraging voordat de interrupt wordt geactiveerd, zodat de conversie tijd heeft om te starten.

Kan ik het proces onderbreken voordat er 10 seconden verstreken zijn?

Ja, wijzig de vertraging inWaitForWhileAndThenInterrupt() naar een kortere tijd.

Heeft het onderbrekingsproces invloed op de prestaties?

De impact is minimaal en het is zeer nuttig voor het beheren van langlopende processen. Voor meer informatie, zie deAspose.Cells voor .NET-documentatie . Als u hulp nodig hebt, bekijk dan deOndersteuningsforumof krijg eenGratis proefperiode.