Stub out WaitHandle.WaitAny() with platform wrapper implementation in ThreadUtil.WaitAny().
diff --git a/src/main/csharp/Util/MessageDispatchChannel.cs b/src/main/csharp/Util/MessageDispatchChannel.cs
index d2d33dc..a1d7cfc 100644
--- a/src/main/csharp/Util/MessageDispatchChannel.cs
+++ b/src/main/csharp/Util/MessageDispatchChannel.cs
@@ -170,7 +170,7 @@
             {
                 this.mutex.ReleaseMutex();
                 this.waiter.Reset();
-                WaitHandle.WaitAny(this.waiters, (int)timeout.TotalMilliseconds, false);
+                ThreadUtil.WaitAny(this.waiters, (int)timeout.TotalMilliseconds, false);
                 this.mutex.WaitOne();
             }
 
diff --git a/src/main/csharp/Util/ThreadUtil.cs b/src/main/csharp/Util/ThreadUtil.cs
index c267395..c54b325 100644
--- a/src/main/csharp/Util/ThreadUtil.cs
+++ b/src/main/csharp/Util/ThreadUtil.cs
@@ -33,5 +33,14 @@
             shutdownEvent.WaitOne(timeout, false);

 #endif

        }

+

+       public static void WaitAny(WaitHandle[] waitHandles, int millisecondsTimeout, bool exitContext)

+       {

+#if NETCF

+           // TODO: Implement .NET CF version of WaitAny().

+#else

+           WaitHandle.WaitAny(waitHandles, millisecondsTimeout, exitContext);

+#endif

+       }

     }

 }