Changed AsyncManualResetEvent.Set behaviour to occur asynchronously. In the previous...
[pithos-ms-client] / trunk / Pithos.Core / Agents / AsyncManualResetEvent.cs
index 00ec851..c0e621f 100644 (file)
@@ -39,7 +39,13 @@ namespace Pithos.Core.Agents
             _tcs.Task.Wait();\r
         }\r
 \r
-        public void Set() { _tcs.TrySetResult(true); }\r
+        public void Set()\r
+        {\r
+            var tcs = _tcs;\r
+            Task.Factory.StartNew(s => ((TaskCompletionSource<bool>)s).TrySetResult(true),\r
+                tcs, CancellationToken.None, TaskCreationOptions.PreferFairness, TaskScheduler.Default);\r
+            tcs.Task.Wait(); \r
+        }\r
 \r
         public void Reset()\r
         {\r