Zatrzymaj konwersję lub ładowanie za pomocą Monitora przerwań

Wstęp

Praca z dużymi plikami Excela często wiąże się z długimi procesami, które mogą pochłaniać czas i zasoby. Ale co, jeśli możesz zatrzymać proces konwersji w połowie, gdy zdasz sobie sprawę, że coś wymaga zmiany? Aspose.Cells dla .NET ma funkcję o nazwie Interrupt Monitor, która umożliwia przerwanie konwersji skoroszytu do innego formatu, takiego jak PDF. Może to być zbawienne, szczególnie podczas pracy z dużymi plikami danych. W tym przewodniku pokażemy, jak przerwać proces konwersji za pomocą Interrupt Monitor w Aspose.Cells dla .NET.

Wymagania wstępne

Zanim zaczniesz działać, upewnij się, że masz przygotowane następujące rzeczy:

  1. Aspose.Cells dla .NET — pobierzTutaj.
  2. Środowisko programistyczne .NET — takie jak Visual Studio.
  3. Podstawowa znajomość programowania w języku C# — znajomość składni języka C# ułatwi Ci zrozumienie tekstu.

Importuj pakiety

Na początek zaimportujmy niezbędne pakiety. Te importy obejmują:

  • Aspose.Cells: Główna biblioteka służąca do manipulowania plikami Excela.
  • System.Threading: do zarządzania wątkami, ponieważ w tym przykładzie zostaną uruchomione dwa równoległe procesy.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;

Podzielmy proces na szczegółowe kroki. Każdy krok pomoże Ci zrozumieć znaczenie konfiguracji i używania Interrupt Monitor do zarządzania konwersją skoroszytu programu Excel.

Krok 1: Utwórz klasę i ustaw katalog wyjściowy

Najpierw potrzebujemy klasy, która będzie zawierać nasze funkcje, a także katalogu, w którym zostanie zapisany plik wyjściowy.

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

Zastępować"Your Document Directory" z rzeczywistą ścieżką, pod którą chcesz zapisać plik PDF.

Krok 2: Utwórz instancję monitora przerwań

Następnie utwórz obiekt InterruptMonitor. Ten monitor pomoże kontrolować proces, ustawiając możliwość przerwania go w dowolnym momencie.

InterruptMonitor im = new InterruptMonitor();

Ten monitor przerwań zostanie dołączony do naszego skoroszytu, co umożliwi nam zarządzanie procesem konwersji.

Krok 3: Skonfiguruj skoroszyt do konwersji

Teraz utwórzmy obiekt skoroszytu, przypiszemy mu InterruptMonitor, a następnie uzyskajmy dostęp do pierwszego arkusza, aby wstawić przykładowy tekst.

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

Powyższy kod tworzy skoroszyt, ustawia dla niego InterruptMonitor i umieszcza tekst w odległej komórce (J1000000). Umieszczenie tekstu w tej pozycji komórki zapewnia, że przetwarzanie skoroszytu będzie bardziej czasochłonne, dając InterruptMonitor wystarczająco dużo czasu na interwencję.

Krok 4: Zapisz skoroszyt jako PDF i obsłuż przerwanie

Teraz spróbujmy zapisać skoroszyt jako PDF. Użyjemytry-catch blok umożliwiający obsługę ewentualnych przerw.

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

Jeśli proces zostanie przerwany, wyjątek go wychwyci i wyświetli odpowiedni komunikat. W przeciwnym razie skoroszyt zostanie zapisany jako plik PDF.

Krok 5: Przerwij proces konwersji

Główną cechą jest tutaj możliwość przerwania procesu. Dodamy opóźnienie za pomocąThread.Sleep a następnie zadzwońInterrupt() metoda zatrzymania konwersji po 10 sekundach.

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

To opóźnienie daje skoroszytowi czas na rozpoczęcie konwersji do formatu PDF przed wysłaniem sygnału przerwania.

Krok 6: Uruchom wątki jednocześnie

Aby połączyć wszystko, musimy uruchomić obie funkcje w oddzielnych wątkach. W ten sposób konwersja skoroszytu i oczekiwanie na przerwanie mogą wystąpić jednocześnie.

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

Powyższy kod działaCreateWorkbookAndConvertItToPdfFormat IWaitForWhileAndThenInterrupt w wątkach równoległych, łącząc je po zakończeniu obu procesów.

Krok 7: Ostateczne wykonanie

Na koniec dodamyRun() metoda wykonania kodu.

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

TenRun Metoda ta stanowi punkt wejścia umożliwiający rozpoczęcie i obserwację przerwania w działaniu.

Wniosek

W tym samouczku przyjrzeliśmy się, jak przerwać proces konwersji w Aspose.Cells dla .NET. Interrupt Monitor to przydatne narzędzie podczas pracy z dużymi plikami Excela, pozwalające zatrzymać procesy bez czekania na ich zakończenie. Jest to szczególnie przydatne w scenariuszach, w których czas i zasoby są cenne, a szybka informacja zwrotna jest potrzebna.

Najczęściej zadawane pytania

Czym jest monitor przerwań w Aspose.Cells dla .NET?

Monitor przerwań umożliwia zatrzymanie konwersji skoroszytu lub procesu ładowania w trakcie jego trwania.

Czy mogę używać Interrupt Monitor do innych formatów niż PDF?

Tak, można przerwać konwersję również do innych obsługiwanych formatów.

W jaki sposób Thread.Sleep() wpływa na czas przerwania?

Thread.Sleep() tworzy opóźnienie przed wyzwoleniem przerwania, dając czas na rozpoczęcie konwersji.

Czy mogę przerwać proces przed upływem 10 sekund?

Tak, zmodyfikuj opóźnienie wWaitForWhileAndThenInterrupt() do krótszego czasu.

Czy proces przerwania wpłynie na wydajność?

Wpływ jest minimalny, a rozwiązanie to jest bardzo przydatne przy zarządzaniu długotrwałymi procesami. Więcej informacji znajdziesz wDokumentacja Aspose.Cells dla .NET . Jeśli potrzebujesz pomocy, sprawdźForum wsparcialub zdobądźBezpłatna wersja próbna.