прерывание метода C #, который был вызван из VBA

#c# #excel #vba

#c# #excel #vba

Вопрос:

У меня есть длительное вычисление на C #, вызванное из Excel VBA, и я хотел бы разрешить пользователю прерывать вычисление с помощью CTRL-C. Может кто-нибудь предложить чистый метод для обработки этого? Код C # скомпилирован в виде библиотеки классов, доступной для просмотра, и его назначение — просто обработка чисел.

(Также важно, чтобы сеанс Excel не мешал выполнению других задач, если пользователь — например, ушел читать свою почту во время ожидания).

Ответ №1:

Вы могли бы выполнить вызов асинхронно и использовать ManualResetEvents из вашего кода C #, чтобы проверить, нужно ли вам останавливать вычисление или нет в определенных точках вашего кода. Для этого потребовалась бы дополнительная функция, позволяющая установить это ManualResetEvent из VBA.