ThreadInterruptMonitor class

ThreadInterruptMonitor class

Simple implementation of AbstractInterruptMonitor by starting another thread to require the interruption after sleeping user specified limit.

Inheritance: ThreadInterruptMonitorAbstractInterruptMonitor

The ThreadInterruptMonitor type exposes the following members:

Constructors

ConstructorDescription
initConstructs one interruption monitor.

Properties

PropertyDescription
is_interruption_requestedThis implementation just checks whether the time cost(from the time when starting this monitor to now) is greater than user specified limit.
terminate_without_exceptionSee AbstractInterruptMonitor.terminate_without_exception.
This property is specified by user when constructing this monitor instance.

Methods

MethodDescription
start_monitorStarts the monitor with the specified time limit. The start time to calculate time cost is just when this method is called,
so the procedure which needs to be monitored should be started just after this call.
finish_monitorFinishes the monitor for one procedure.

Remarks

One monitor instance can be used repeatedly, as long as you monitor each process in sequence. It should not be used to monitor multiple procedures concurrently in multi-threads.

Example

The following example shows how to monitor the load and save procedure with specified time limit:

from aspose.cells import LoadOptions, ThreadInterruptMonitor, Workbook

monitor = ThreadInterruptMonitor(False)
lopts = LoadOptions()
lopts.interrupt_monitor = monitor
monitor.start_monitor(1000)
wb = Workbook("Large.xlsx", lopts)
# if the time cost of loading the template file exceeds one second, interruption will be required and exception will be thrown here
# otherwise finishes the monitor thread and starts to monitor the save procedure
monitor.finish_monitor()
monitor.start_monitor(1500)
wb.save("result.xlsx")
monitor.finish_monitor()

See Also