XLL+ Class Library (7.0)

Upgrading asynchronous functions from XLL+ 6.0

Note: this topic describes issues arising with asynchronous add-in functions developed using XLL+ version 6.0. If you have not developed or released any such functions, you can safely skip this topic.

Older model

The implementation of asynchronous functions was changed significantly in version 6.2 of XLL+. Asynchronous add-in functions generated by early versions of XLL+ 6 used an extra argument, RtdSignalCell, which was used as a channel for RTD update notifications. This model required the use of an extra cell, controlled by the add-in, to contain the argument.

This model, while it was transparent in its workings, was found to be inconvenient. The revised model introduced in XLL+ version 6.2 uses a less intrusive technique. All the RTD calls are made "under the hood", inside the asynchronous function's implementation. There is no longer any need for the extra cell.

The new model has several advantages:

Upgrading to the new model

To upgrade existing asynchronous functions to use the new model, use the XLL+ ToolWindow to select all functions that have an asynchronous version, and use the Regenerate functions command.

Supporting existing spreadsheets

If you have created asynchronous functions using XLL+ 6.0, and there are spreadsheets that use them, then the new model will break these spreadsheets. Because they use an extra argument, the cells that call them will simply return error values.

You can avoid this problem by using the UseAsyncHandleModel property.

Note: This is an advanced property, which is normally hidden by the user interface. To view and edit an advanced property in the XLL+ ToolWindow, set the ShowAdvancedProperties property in the XLL+ Options page to true. To see advanced properties in the XLL+ Function Wizard, use the Show Advanced Properties command.

Set the property to True for all asynchronous functions that are already in use. The Function Wizard will add an extra argument RtdSignalCell, exactly as in the old model. The argument will be completely ignored by the Asynchronous function, and can safely be omitted by all new users of the add-in function.

Next: Queued functions >>