Using normal .NET async functionality when developing UDF's with ExcelDNA

45 views
Skip to first unread message

Guido De Bouver

unread,
Jun 4, 2025, 6:36:01 AMJun 4
to Excel-DNA
hello all,

All of my ExcelDNA-developed UDF's are calling underlying webservices, which in turn call others etc. Because of higher load, I am now switching to make things more responsive using standard .NET  Async/Await functionality ( cfr code extract in VB .NET below )
...
Dim x() = CallMainAsync().GetAwaiter().GetResult()
...
Private Async Function CallMainAsync() As Task(Of Double())
        Using p As New ip21.InfoPlusServiceClient(ip21b, ip21a)
            r = Await p.GetReconciliatedDataAsync(tags, "17-APR-25", "27-MAY-25")
        End Using
        Return r

When running it from non-Excel applictions, things run extremel;y smooth now as it doesnt block any GUI

Question.
I realize there is a lot of support inside ExcelDna for async functions.
However, is there any value of changing my webservcie calls in the regular UDFs to call the underlying webservice using the above scheme, without going all the way of changing into the full ExcelDNA Async complex?
I am asking since this development is in a validated environemnt, so every small change requires extensive testing and validation - so a complete move to the ExcelDNA Async complex is not realistic for that reason.

thanks
guido



Reply all
Reply to author
Forward
0 new messages