LOL This is such a typical reaction from someone coming from the .NET Framework. Part of the.NET CF team's design philosophy is simple: if there's an easy work around, they won't provide the feature. For the record, WaitHandle.WaitAny() is still unsupported in .NET CF 3.5. If you don't want to have to write the P/Invoke calls yourself, you can always use the Smart Device Framework, which does this for you already. Our implementation of WaitHandle (namely, OpenNETCF.Threading.EventWaitHandle) supports 4 overloads of WaitAny(). I hate to plug our products on here, but there is a free of charge version :)
------------------------- Neil Cowburn, MVP Principal Partner OpenNETCF Consulting, LLC -------------------------