Существует множество случаев, когда желательно иметь функциональность тайм-аута для прерывания действия, которое занимает неоправданно длительное время. Эта статья предоставляет пример класса для достижения функциональности тайм-аута при загрузке файлов EML/MSG, что может привести к очень долгим задержкам или неудачной загрузке. Поскольку тайм-аут не является чем-то, что напрямую связано с операциями чтения/записи на диск или в сеть, имеет мало смысла реализовывать эту функцию в API, чем реализовать ее на стороне пользователя, написав класс-обертку вокруг Aspose.
Отмена длительного потока может быть достигнута с использованием обернутого делегата, который передает поток, подлежащий завершению, в локальной переменной внутри метода, который его инициировал. Длительный поток отменяется путем его прерывания, и управление возвращается в основное приложение. Следующий пример кода предоставляет класс-обертку вокруг библиотеки Aspose.Email. Код также демонстрирует пример использования класса-обертки.
Программный пример с .NET 3.5 и выше
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters