From a8045ac50b409bb70a557a35920ccb7c7ed5deef Mon Sep 17 00:00:00 2001 From: JustArchi Date: Tue, 7 Feb 2017 20:14:51 +0100 Subject: [PATCH] Fix async/await with ConcurrentHashSet Now this is a nice bug that was found accidentally by ArchiBoT... ReaderWriterLockSlim() is very decent solution, but it's thread-based, and we're using our ConcurrentHashSet in mixed async/sync context. This means that if we use something like: foreach (var item in concHashSet) { await AnythingAsync().ConfigureAwait(false); } It's totally possible that we'll request read lock as thread 1, and release the read lock as thread 2, which will lead to RWLock exception => System.Threading.SynchronizationLockException: The read lock is being released without being held. Fortunately it looks like we didn't have any scenario like this in ASF, as this was possible only when we async/await while enumerating over ConcurrentHashSet, so that specific bug didn't affect ASF codebase (yet). Still, I must fix this as current implementation is not thread-safe, so our HashSet is in fact not concurrent in the first place. I analyzed possible solutions and there are basically 3: either using ConcurrentDictionary and wrapping around it, replacing lock with SemaphoreSlim, or using third-party AsyncReaderWriterLock from StephenCleary. SemaphoreSlim entirely kills the concept of multiple readers one writer, and could affect performance negatively, moreover - it doesn't support upgreadable lock scenario we have with ReplaceIfNeededWith(). Concurrent dictionary would be nice if I didn't have that awful memory hit from storing mandatory pointless value, plus I don't really like concept of wrapping around conc dictionary if I can simply use it right away and drop my conc hashset entirely. AsyncReaderWriterLock seem to be really well written, and works on Mono + should be compatible with .NET core in the future, so we should go for it as it's the best bet both performance-wise and memory-wise. This brings another package dependency and changes a bit backend of ConcurrentHashSet --- ArchiSteamFarm/ArchiSteamFarm.csproj | 27 + ArchiSteamFarm/Bot.cs | 3 - ArchiSteamFarm/CardsFarmer.cs | 2 - ArchiSteamFarm/ConcurrentEnumerator.cs | 13 +- ArchiSteamFarm/ConcurrentHashSet.cs | 76 +- ArchiSteamFarm/GlobalDatabase.cs | 5 +- ArchiSteamFarm/InMemoryServerListProvider.cs | 3 +- ArchiSteamFarm/Trading.cs | 5 +- ArchiSteamFarm/packages.config | 4 + GUI/GUI.csproj | 27 + GUI/packages.config | 4 + .../Microsoft.Bcl.1.1.10/License-Stable.rtf | 118 + .../Microsoft.Bcl.1.1.10.nupkg | Bin 0 -> 1008547 bytes .../lib/Xamarin.iOS10/_._ | 0 .../Microsoft.Bcl.1.1.10/lib/monoandroid/_._ | 0 .../Microsoft.Bcl.1.1.10/lib/monotouch/_._ | 0 .../lib/net40/System.IO.dll | Bin 0 -> 21144 bytes .../lib/net40/System.IO.xml | 8 + .../lib/net40/System.Runtime.dll | Bin 0 -> 22176 bytes .../lib/net40/System.Runtime.xml | 56 + .../lib/net40/System.Threading.Tasks.dll | Bin 0 -> 35016 bytes .../lib/net40/System.Threading.Tasks.xml | 475 + .../lib/net40/ensureRedirect.xml | 0 packages/Microsoft.Bcl.1.1.10/lib/net45/_._ | 0 .../System.IO.dll | Bin 0 -> 22672 bytes .../System.IO.xml | 51 + .../System.Runtime.dll | Bin 0 -> 39080 bytes .../System.Runtime.xml | 860 ++ .../System.Threading.Tasks.dll | Bin 0 -> 164544 bytes .../System.Threading.Tasks.xml | 8969 +++++++++++++++++ .../ensureRedirect.xml | 0 .../System.IO.dll | Bin 0 -> 22672 bytes .../System.IO.xml | 51 + .../System.Runtime.dll | Bin 0 -> 22176 bytes .../System.Runtime.xml | 56 + .../System.Threading.Tasks.dll | Bin 0 -> 164544 bytes .../System.Threading.Tasks.xml | 8969 +++++++++++++++++ .../ensureRedirect.xml | 0 .../lib/portable-net40+sl4+win8/System.IO.dll | Bin 0 -> 22672 bytes .../lib/portable-net40+sl4+win8/System.IO.xml | 51 + .../System.Runtime.dll | Bin 0 -> 22176 bytes .../System.Runtime.xml | 56 + .../System.Threading.Tasks.dll | Bin 0 -> 164544 bytes .../System.Threading.Tasks.xml | 8969 +++++++++++++++++ .../ensureRedirect.xml | 0 .../System.IO.dll | Bin 0 -> 22672 bytes .../System.IO.xml | 51 + .../System.Runtime.dll | Bin 0 -> 22176 bytes .../System.Runtime.xml | 56 + .../System.Threading.Tasks.dll | Bin 0 -> 35016 bytes .../System.Threading.Tasks.xml | 475 + .../ensureRedirect.xml | 0 .../System.IO.dll | Bin 0 -> 22672 bytes .../System.IO.xml | 51 + .../System.Runtime.dll | Bin 0 -> 22176 bytes .../System.Runtime.xml | 56 + .../System.Threading.Tasks.dll | Bin 0 -> 35016 bytes .../System.Threading.Tasks.xml | 475 + .../ensureRedirect.xml | 0 .../lib/portable-net40+win8/System.IO.dll | Bin 0 -> 21144 bytes .../lib/portable-net40+win8/System.IO.xml | 8 + .../portable-net40+win8/System.Runtime.dll | Bin 0 -> 22176 bytes .../portable-net40+win8/System.Runtime.xml | 56 + .../System.Threading.Tasks.dll | Bin 0 -> 35016 bytes .../System.Threading.Tasks.xml | 475 + .../portable-net40+win8/ensureRedirect.xml | 0 .../lib/portable-net45+win8+wp8+wpa81/_._ | 0 .../lib/portable-net45+win8+wpa81/_._ | 0 .../lib/portable-net451+win81+wpa81/_._ | 0 .../lib/portable-net451+win81/_._ | 0 .../lib/portable-win81+wp81+wpa81/_._ | 0 .../lib/sl4-windowsphone71/System.IO.dll | Bin 0 -> 22672 bytes .../lib/sl4-windowsphone71/System.IO.xml | 51 + .../lib/sl4-windowsphone71/System.Runtime.dll | Bin 0 -> 39080 bytes .../lib/sl4-windowsphone71/System.Runtime.xml | 860 ++ .../System.Threading.Tasks.dll | Bin 0 -> 164544 bytes .../System.Threading.Tasks.xml | 8969 +++++++++++++++++ .../lib/sl4-windowsphone71/ensureRedirect.xml | 0 .../lib/sl4/System.IO.dll | Bin 0 -> 22672 bytes .../lib/sl4/System.IO.xml | 51 + .../lib/sl4/System.Runtime.dll | Bin 0 -> 22176 bytes .../lib/sl4/System.Runtime.xml | 56 + .../lib/sl4/System.Threading.Tasks.dll | Bin 0 -> 164544 bytes .../lib/sl4/System.Threading.Tasks.xml | 8969 +++++++++++++++++ .../lib/sl5/System.IO.dll | Bin 0 -> 22672 bytes .../lib/sl5/System.IO.xml | 51 + .../lib/sl5/System.Runtime.dll | Bin 0 -> 22176 bytes .../lib/sl5/System.Runtime.xml | 56 + .../lib/sl5/System.Threading.Tasks.dll | Bin 0 -> 35016 bytes .../lib/sl5/System.Threading.Tasks.xml | 475 + packages/Microsoft.Bcl.1.1.10/lib/win8/_._ | 0 packages/Microsoft.Bcl.1.1.10/lib/wp8/_._ | 0 packages/Microsoft.Bcl.1.1.10/lib/wpa81/_._ | 0 .../License-Stable.rtf | 118 + .../Microsoft.Bcl.Async.1.0.168.nupkg | Bin 0 -> 491429 bytes ...oft.Threading.Tasks.Extensions.Desktop.dll | Bin 0 -> 47424 bytes ...oft.Threading.Tasks.Extensions.Desktop.xml | 684 ++ .../Microsoft.Threading.Tasks.Extensions.dll | Bin 0 -> 31520 bytes .../Microsoft.Threading.Tasks.Extensions.xml | 275 + .../lib/net40/Microsoft.Threading.Tasks.dll | Bin 0 -> 37104 bytes .../lib/net40/Microsoft.Threading.Tasks.xml | 630 ++ .../Microsoft.Threading.Tasks.Extensions.dll | Bin 0 -> 31520 bytes .../Microsoft.Threading.Tasks.Extensions.xml | 275 + .../Microsoft.Threading.Tasks.dll | Bin 0 -> 37104 bytes .../Microsoft.Threading.Tasks.xml | 630 ++ .../Microsoft.Threading.Tasks.Extensions.dll | Bin 0 -> 31520 bytes .../Microsoft.Threading.Tasks.Extensions.xml | 275 + .../Microsoft.Threading.Tasks.dll | Bin 0 -> 37104 bytes .../Microsoft.Threading.Tasks.xml | 630 ++ .../Microsoft.Threading.Tasks.Extensions.dll | Bin 0 -> 31520 bytes .../Microsoft.Threading.Tasks.Extensions.xml | 275 + .../Microsoft.Threading.Tasks.dll | Bin 0 -> 37104 bytes .../Microsoft.Threading.Tasks.xml | 630 ++ ...osoft.Threading.Tasks.Extensions.Phone.dll | Bin 0 -> 28984 bytes ...osoft.Threading.Tasks.Extensions.Phone.xml | 141 + .../Microsoft.Threading.Tasks.Extensions.dll | Bin 0 -> 31520 bytes .../Microsoft.Threading.Tasks.Extensions.xml | 275 + .../Microsoft.Threading.Tasks.dll | Bin 0 -> 37104 bytes .../Microsoft.Threading.Tasks.xml | 630 ++ ...Threading.Tasks.Extensions.Silverlight.dll | Bin 0 -> 29008 bytes ...Threading.Tasks.Extensions.Silverlight.xml | 141 + .../Microsoft.Threading.Tasks.Extensions.dll | Bin 0 -> 31520 bytes .../Microsoft.Threading.Tasks.Extensions.xml | 275 + .../lib/sl4/Microsoft.Threading.Tasks.dll | Bin 0 -> 37104 bytes .../lib/sl4/Microsoft.Threading.Tasks.xml | 630 ++ .../Microsoft.Threading.Tasks.Extensions.dll | Bin 0 -> 31520 bytes .../Microsoft.Threading.Tasks.Extensions.xml | 275 + .../lib/win8/Microsoft.Threading.Tasks.dll | Bin 0 -> 37104 bytes .../lib/win8/Microsoft.Threading.Tasks.xml | 630 ++ ...osoft.Threading.Tasks.Extensions.Phone.dll | Bin 0 -> 28984 bytes ...osoft.Threading.Tasks.Extensions.Phone.xml | 141 + .../Microsoft.Threading.Tasks.Extensions.dll | Bin 0 -> 31520 bytes .../Microsoft.Threading.Tasks.Extensions.xml | 275 + .../lib/wp8/Microsoft.Threading.Tasks.dll | Bin 0 -> 37104 bytes .../lib/wp8/Microsoft.Threading.Tasks.xml | 630 ++ .../Microsoft.Threading.Tasks.Extensions.dll | Bin 0 -> 31520 bytes .../Microsoft.Threading.Tasks.Extensions.xml | 275 + .../lib/wpa81/Microsoft.Threading.Tasks.dll | Bin 0 -> 37104 bytes .../lib/wpa81/Microsoft.Threading.Tasks.xml | 630 ++ .../License-Stable.rtf | 118 + .../Microsoft.Bcl.Build.1.0.21.nupkg | Bin 0 -> 31401 bytes .../build/Microsoft.Bcl.Build.Tasks.dll | Bin 0 -> 37072 bytes .../build/Microsoft.Bcl.Build.targets | 250 + .../Nito.AsyncEx.4.0.1.nupkg | Bin 0 -> 953527 bytes .../MonoAndroid/Nito.AsyncEx.Concurrent.dll | Bin 0 -> 27648 bytes .../MonoAndroid/Nito.AsyncEx.Concurrent.xml | 401 + .../Nito.AsyncEx.Enlightenment.dll | Bin 0 -> 8192 bytes .../Nito.AsyncEx.Enlightenment.xml | 18 + .../lib/MonoAndroid/Nito.AsyncEx.dll | Bin 0 -> 96256 bytes .../lib/MonoAndroid/Nito.AsyncEx.xml | 3930 ++++++++ .../Xamarin.Mac20/Nito.AsyncEx.Concurrent.dll | Bin 0 -> 27648 bytes .../Xamarin.Mac20/Nito.AsyncEx.Concurrent.xml | 401 + .../Nito.AsyncEx.Enlightenment.dll | Bin 0 -> 8192 bytes .../Nito.AsyncEx.Enlightenment.xml | 18 + .../lib/Xamarin.Mac20/Nito.AsyncEx.dll | Bin 0 -> 96256 bytes .../lib/Xamarin.Mac20/Nito.AsyncEx.xml | 3930 ++++++++ .../Xamarin.iOS10/Nito.AsyncEx.Concurrent.dll | Bin 0 -> 27648 bytes .../Xamarin.iOS10/Nito.AsyncEx.Concurrent.xml | 401 + .../Nito.AsyncEx.Enlightenment.dll | Bin 0 -> 8192 bytes .../Nito.AsyncEx.Enlightenment.xml | 18 + .../lib/Xamarin.iOS10/Nito.AsyncEx.dll | Bin 0 -> 96256 bytes .../lib/Xamarin.iOS10/Nito.AsyncEx.xml | 3930 ++++++++ .../lib/net40/Nito.AsyncEx.Concurrent.dll | Bin 0 -> 27648 bytes .../lib/net40/Nito.AsyncEx.Concurrent.xml | 401 + .../lib/net40/Nito.AsyncEx.Enlightenment.dll | Bin 0 -> 12800 bytes .../lib/net40/Nito.AsyncEx.Enlightenment.xml | 39 + .../lib/net40/Nito.AsyncEx.dll | Bin 0 -> 95744 bytes .../lib/net40/Nito.AsyncEx.xml | 3930 ++++++++ .../lib/net45/Nito.AsyncEx.Concurrent.dll | Bin 0 -> 27648 bytes .../lib/net45/Nito.AsyncEx.Concurrent.xml | 401 + .../lib/net45/Nito.AsyncEx.Enlightenment.dll | Bin 0 -> 8192 bytes .../lib/net45/Nito.AsyncEx.Enlightenment.xml | 18 + .../lib/net45/Nito.AsyncEx.dll | Bin 0 -> 96256 bytes .../lib/net45/Nito.AsyncEx.xml | 3930 ++++++++ .../netcore451/Nito.AsyncEx.Concurrent.dll | Bin 0 -> 27648 bytes .../netcore451/Nito.AsyncEx.Concurrent.xml | 401 + .../netcore451/Nito.AsyncEx.Enlightenment.dll | Bin 0 -> 8192 bytes .../netcore451/Nito.AsyncEx.Enlightenment.xml | 18 + .../lib/netcore451/Nito.AsyncEx.dll | Bin 0 -> 96256 bytes .../lib/netcore451/Nito.AsyncEx.xml | 3930 ++++++++ .../Nito.AsyncEx.dll | Bin 0 -> 95744 bytes .../Nito.AsyncEx.xml | 3930 ++++++++ .../Nito.AsyncEx.Concurrent.dll | Bin 0 -> 27648 bytes .../Nito.AsyncEx.Concurrent.xml | 401 + .../Nito.AsyncEx.dll | Bin 0 -> 95744 bytes .../Nito.AsyncEx.xml | 3930 ++++++++ .../Nito.AsyncEx.dll | Bin 0 -> 96256 bytes .../Nito.AsyncEx.xml | 3930 ++++++++ .../Nito.AsyncEx.Concurrent.dll | Bin 0 -> 27648 bytes .../Nito.AsyncEx.Concurrent.xml | 401 + .../Nito.AsyncEx.dll | Bin 0 -> 96256 bytes .../Nito.AsyncEx.xml | 3930 ++++++++ .../lib/sl5/Nito.AsyncEx.Enlightenment.dll | Bin 0 -> 14336 bytes .../lib/sl5/Nito.AsyncEx.Enlightenment.xml | 54 + .../lib/sl5/Nito.AsyncEx.dll | Bin 0 -> 95744 bytes .../lib/sl5/Nito.AsyncEx.xml | 3930 ++++++++ .../lib/wp8/Nito.AsyncEx.Enlightenment.dll | Bin 0 -> 9216 bytes .../lib/wp8/Nito.AsyncEx.Enlightenment.xml | 33 + .../lib/wp8/Nito.AsyncEx.dll | Bin 0 -> 96256 bytes .../lib/wp8/Nito.AsyncEx.xml | 3930 ++++++++ .../lib/wpa81/Nito.AsyncEx.Concurrent.dll | Bin 0 -> 27648 bytes .../lib/wpa81/Nito.AsyncEx.Concurrent.xml | 401 + .../lib/wpa81/Nito.AsyncEx.Enlightenment.dll | Bin 0 -> 8192 bytes .../lib/wpa81/Nito.AsyncEx.Enlightenment.xml | 18 + .../lib/wpa81/Nito.AsyncEx.dll | Bin 0 -> 96256 bytes .../lib/wpa81/Nito.AsyncEx.xml | 3930 ++++++++ 206 files changed, 114696 insertions(+), 74 deletions(-) create mode 100644 packages/Microsoft.Bcl.1.1.10/License-Stable.rtf create mode 100644 packages/Microsoft.Bcl.1.1.10/Microsoft.Bcl.1.1.10.nupkg create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/Xamarin.iOS10/_._ create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/monoandroid/_._ create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/monotouch/_._ create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/net40/System.IO.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/net40/System.IO.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/net40/System.Runtime.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/net40/System.Runtime.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/net40/System.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/net40/System.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/net40/ensureRedirect.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/net45/_._ create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.IO.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.IO.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.Runtime.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.Runtime.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/ensureRedirect.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.IO.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.IO.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Runtime.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Runtime.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/ensureRedirect.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.IO.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.IO.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Runtime.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Runtime.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/ensureRedirect.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.IO.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.IO.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Runtime.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Runtime.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/ensureRedirect.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.IO.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.IO.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Runtime.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Runtime.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/ensureRedirect.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.IO.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.IO.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Runtime.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Runtime.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/ensureRedirect.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net45+win8+wp8+wpa81/_._ create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net45+win8+wpa81/_._ create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net451+win81+wpa81/_._ create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-net451+win81/_._ create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/portable-win81+wp81+wpa81/_._ create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.IO.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.IO.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.Runtime.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.Runtime.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/ensureRedirect.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4/System.IO.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4/System.IO.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Runtime.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Runtime.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl5/System.IO.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl5/System.IO.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Runtime.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Runtime.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/win8/_._ create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/wp8/_._ create mode 100644 packages/Microsoft.Bcl.1.1.10/lib/wpa81/_._ create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/License-Stable.rtf create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/Microsoft.Bcl.Async.1.0.168.nupkg create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.Desktop.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.Desktop.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.Extensions.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.Extensions.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.Extensions.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.Extensions.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.Extensions.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.Extensions.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.Phone.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.Phone.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.Silverlight.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.Silverlight.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.Extensions.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.Extensions.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.Phone.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.Phone.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.Extensions.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.Extensions.xml create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.dll create mode 100644 packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.xml create mode 100644 packages/Microsoft.Bcl.Build.1.0.21/License-Stable.rtf create mode 100644 packages/Microsoft.Bcl.Build.1.0.21/Microsoft.Bcl.Build.1.0.21.nupkg create mode 100644 packages/Microsoft.Bcl.Build.1.0.21/build/Microsoft.Bcl.Build.Tasks.dll create mode 100644 packages/Microsoft.Bcl.Build.1.0.21/build/Microsoft.Bcl.Build.targets create mode 100644 packages/Nito.AsyncEx.4.0.1/Nito.AsyncEx.4.0.1.nupkg create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.Concurrent.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.Concurrent.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.Enlightenment.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.Enlightenment.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.Concurrent.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.Concurrent.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.Enlightenment.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.Enlightenment.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.Concurrent.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.Concurrent.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.Enlightenment.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.Enlightenment.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.Concurrent.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.Concurrent.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.Enlightenment.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.Enlightenment.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.Concurrent.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.Concurrent.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.Enlightenment.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.Enlightenment.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.Concurrent.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.Concurrent.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.Enlightenment.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.Enlightenment.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451+sl5+wp8+wpa81/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451+sl5+wp8+wpa81/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.Concurrent.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.Concurrent.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wp8+wpa81/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wp8+wpa81/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wpa81/Nito.AsyncEx.Concurrent.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wpa81/Nito.AsyncEx.Concurrent.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wpa81/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wpa81/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.Enlightenment.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.Enlightenment.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/wp8/Nito.AsyncEx.Enlightenment.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/wp8/Nito.AsyncEx.Enlightenment.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/wp8/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/wp8/Nito.AsyncEx.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.Concurrent.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.Concurrent.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.Enlightenment.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.Enlightenment.xml create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.dll create mode 100644 packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.xml diff --git a/ArchiSteamFarm/ArchiSteamFarm.csproj b/ArchiSteamFarm/ArchiSteamFarm.csproj index c8c077220..972b763e3 100644 --- a/ArchiSteamFarm/ArchiSteamFarm.csproj +++ b/ArchiSteamFarm/ArchiSteamFarm.csproj @@ -79,10 +79,34 @@ ..\packages\HtmlAgilityPack.1.4.9.5\lib\Net45\HtmlAgilityPack.dll True + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll + True + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll + True + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll + True + ..\packages\Newtonsoft.Json.9.0.2-beta2\lib\net45\Newtonsoft.Json.dll True + + ..\packages\Nito.AsyncEx.4.0.1\lib\net45\Nito.AsyncEx.dll + True + + + ..\packages\Nito.AsyncEx.4.0.1\lib\net45\Nito.AsyncEx.Concurrent.dll + True + + + ..\packages\Nito.AsyncEx.4.0.1\lib\net45\Nito.AsyncEx.Enlightenment.dll + True + ..\packages\NLog.5.0.0-beta05-test\lib\net45\NLog.dll True @@ -99,6 +123,7 @@ + @@ -263,10 +288,12 @@ + + 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

5u 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%0DJ#P465ln)=r!)V;(I`8HFO9TW~} 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 z zIilqSX)(X|y5_3*XAfTjeVi!=ly66O+a?WMA>d75AJM0wth-Fv8WcIr{#awp54|ST z;~-wGRTcUK6s)LdsokI|u{jVse4nGQV$Xj7Pe8E0{C1av|1~f5p+J-Bt#~MIWg>B_ zgt>Ugc3&o3$~4^<`9`vv(vt%ajGdIxf}uFJk3cSNyIxOu??bsx)V!Tv!%6?2u0_w$ z;@)#Gn<;lM&UI}u&fDO^ItbB@xwm7UGKvMr5a0auJaon<#OB^r8dA7C2ig zr)Eq%e}%fvRq0u!HkheNI~-H%6WAq_1ei>*9V)0bTyc#Q9knYB^QK zA;NOhkkcg*xCgoW)Z>AC`w1q4rvquFjfHX7R}jZqJkH0aK&y!KR!JuJIx3u0bzZ(y4$ntO*QIlTC2*|>1r zlrf(n5y_CZH^q?b7R^V(nrR-*lWOqoHmb_MFLc$q6e5LKpkMl+C3egDJA02VgQ?jwdy1HEH zYS3btUM%W%pVN`7n(tk*U-?V9p@b)$Tm8@;25SDBemY=PYXb{c^rwXniv(jT@qqI| zCeEZuihQ!4!Y8Y@{WVv8Se;%_X9)r>p|>*-?#L$OuI`h>L-P@VO$NEbj5StSIDQ;W zZmCYUSrI(%62*fa{htR5Q}Hc}O#GLgjWZ-yJ^o*5>ea4x== z!R4(wOO_u)H^uUq2u|N~`FJR~83#pWnM3+JhrN*MlxxEwyk#YDS0VhjK)!noO3zA!uZa?E0w zw8q4%tDOd_A)*g}WaPMYiRW3!9mbGlH`Ig*_h}peHfv0$5#w%DvYe~ln{gspj*Meg zpmSnb7V$=qB_jl6xtbk}HFR~?Dp}g_k7=bO&)r8M%XK*O+>a|s@6J)l@^vV3+**%Q zfg7+n6%ge{EU-&O$#d~G`Yp)#r7fb9V$C{@7eed^x7X&sOx5Dls&~%8wzkP|!!B$_ zBG;RyJ1h@99wrRF%Z^pZHz=y|Rh70>m-1-qfk0WA4lC)%!& z{NlvSINkH#b$-Xz=zTPlEc#>%NvT6{4bg^J zvWm60njHbGs?s56x*?Zh?nHwZRd~5ly|v&b$Te;qCjos+hT6yjgPhH|HQd&>!t@6svwi3F1^q6Hh z7qiJ~)~Soz$)Q!f7{L(#r#F7n)r4%|xmAA1mT0$0+B9P`?XY*w2|X;;Y>pK-jlFY$ z9yhzT)N0;?J7;uKev;3f;??L^aC_J)lK>|2t|4@zIz3L09Cg)JW8|nE=5B3K?!(Wd z0-5P1J#HR#{hi1sRdo@qUy)+}~s+jF8!$r(iUze@Zt>UN3 z3R|ghuhZ8l(4|`Ood!6I#WBZ5XDY{;Z|cfKEZ^tOch48upj98efb+>EyP>hR3TxMnf=I+qsEA^{LYpizNPWjJl{ZXoRW2&{V6UW1_ zvQC}F55;~`cu&FxUJjH)!`|afIq#Y4$Jz%T6@1PH?xG$VfV0TYj5D}Ff)f&~?D-4y zdnG?h!jZ>c`n38{MlIYI^3c)Q`E+eqk*f#+)c7Qinc1la9n(#g`;Zs^0+OZn%Bxh8 zcYKDrVsckJQ)`ua*NtkI+zPu`Zc}LvI4rc196TDD(=wFx&zUGbSMocIl|a_EsYXN$ z<=J_$q)lQ{LCle{r1y!){lZv54eZeya8xSk9Md>Ny-Q;$@7DOC5Cccq{s$|`Yz>Ka zkH#Mr=<;>TW}TO3vPzGK?S-b4p2}kUrc!+KM7Wh`nQ zoV7)l(2yFS^KrGZgLId1m0_<+u5MT8i=bxN=jY>(+c5CXHM|oDSU%gM`gKfT_ z94d30MtF(?0Wya@3OyqMd)ZRi*NiBnVe;4nh z;6qv#4O@&Oes0cjHGWPrcwP*mIKg=_6&v%u_o{+E9K%9Myzb|bwm@J+9&!kA$OA8V z4-R6rnVd`|Qco(Mlf3YMYJ4)gi~Sr;M%6f#pV;nONKi=~E7o~advViqKQD6dNwMO& z8_ey8yf~I$>X%+A&z`S6#RF8@DZcv@KOi-Hkx<^&S{1VN8X2`x;|DL-It(h9~`0|(=(f;&AmD{@kZ{1>|Zo$j7q>P8cmb9wg zcgbdm`4`L2_rCVpw^ywvPqg+O8ON+Z=frE@BHjpV-(D^7iX>Y5_VL>H02+RQkGYbDvr=vxCU+*50s+U^?FUcqXl!@DLjS&lCK|Y zjrwn`ODXspH2DH@PW-RNryFJB@nGVM!NjAQdNv+)EH15MY#@p~((u=LkTyp;Liah>?NJj13PdE7`e3i}yq{C)dzVVKqjdL(#R8f;fh$Gdw zpCD}cPLV1xcDmdy!?VZ}OWNXfIzOq2R^KAWa;VJ4L8v7tOsl>ehkN#x;54vZ?|&nM-P%{fx9XKa3HKcupMSlLac{@a{R|d1wJ}-JW*G(Fby*|or-)j) z-xd*+E3Se3V}&~)^RPaE%EQJ0Y7d77Kr+k>kwsiM&$EbO=8izG3xIByprYM06V7j7 z1eisPi z<;XEx5lG-^ettc&Ea1I=Qp)1pqW)u27EAmwfXBGVXvxQp-W}|iwKR6$!*YIapic~O zEm69bb+~YshPsUbMk7(=eCgO+v_xQ`BumFOLxul=ctBOXbo&?@@;(h-uj$^6E*=`& zVspLTC{fCMe7pp!hRJrFEhcn`v3PD{1-C=BY#zV8R4qYdD%iI7bK5=;Xq(B;i@#pB z?SraqAF9x{50$qKOJHss)g@bZFB@{%y!(pH3%U3E&AYd9^X?tiZ!5&a?XrDqRcllW z=c7$aimST$)%#A!8{xC~ zj#ttrVi|?cNt-LbQCDi4rHk;UpoMZQy z!Uk+K73O-K-y)W3k+u8^dhDwjz9bXE*H;$sS5J!H{(DWiF7)0b^V)J%sH2i=5O*ZG zE-Z8Qzs}r!19JVQC)XRO?3*FiZz;JxKB8P7e{H!gq8bOjU0JRG_qqr`_`>~8W#Num zw*NbNo&DdF(AgmFNV5IkGM#-w!)HGca+VviC`;>6aXn;9jz6!Xo)|&45iWir*-Dii zE>_DCykkL2ttTPO?-hl48h4b#YKvh1}bKpZ^w)l|!z5 zc?3)J{--s#G|vS32+uOy069Oa)uEKMe2cMV2 zrT=+Nt?BW;q#H%~d%h)tfqe+P!744&a`$br|K0;zz49QCoB6#Z*Gl&j-J2BM0e@ze zFJUyW%@(aU(^KQ7`y-y&v$f6&?DaA#@AX>pMU8}k51M74QV#)`@-Vl2>mrp}URp}B zVlm@Y;c~_epK)V2<6-}uTeHuTXN7Jm6N=%$fiI12ZX)Q9wMsEh`96;uS$Cu~_y0H2 zLt&gY&=vD0YZS%Yk zaFRDk2VO!n-x&B4lok5$P2%Hbmc`2iTJ#Vlou3fmqWciY?gzU2Q;nY(xwy_k)Rsim zr}G=;GiTT?b%<3Jmiw+h2cDg-i`%R{)#|9XK6DvDSX+KEl;C4*w$c_4VHJ`71$ygU z@`00s{?h?yjV1XgSVEpnC@hm_6Z-$ehq|3Cw(o4+`K6}bS;OztStXjfgnEz8RI%rJ z@A&~CzVs#eEeZ4s4&2>Reim2OS9&_PLg@Qz^GX8a@}mVW@s1*fNZOIu2vJM8&0Evy zT71F9%5R?UjgCZBdcDL5yT3wj;yZJLAx)UAO~c_9;MClYV3Rql`Ut}=xuxCK6AnLu zE5EtwXSLmh7rGu1ktLcqt&kxcE9;B2jtRS)y&NtwfA1>Y`yE9-|(3-46DVt#RJ zfghUS?5LR`$9|5GOHRl@Zs+?G*TcHrKbMcWwP70?(-t1bP7lmsAg=jGJklHwxt;32 zmDd`o%$GQFG-1nfL+}^Euyx9RsS?`5$hMy9kquOyt(IkQ@H^TP%%Sy&e%!he8|=Sj zoiE>FuhP|7>k!W1<1Bu>aD_Ve-^M5R+vFL&W2btC%91eoC_qQycNmXzeN^kXbqLk{ zUK_rj{|B&VNmjQ9Ju3+GkL;+t2>o~oWtX7kFEbF={QZ8*RV)fJeY=t=7dxR$i{yt< zZdp*2sb4>2iZU|F7R-?{{S#b+KUb9LU$_^1nZ5%u{i`NFQ~wGG^uHqglMv zOrNP6?6XLNc${Gwqi+pfqS>Guy|{5-MU_;T@@jRgNT>0#mLVK4{|g4BA23G>0dxE! zV9x0i1k4}Ny)5U=KpM`ui?qB4d?_cGyjaT@&3nWy)8~_bCO`SA>Gt-}#*8oe`)UM{XFY$cf67)Ky+) ze1+I^1HADvyh<@@!VAfmY?1E~W9|P{dua)A((Ns+Yc%b^(xaw?pON=I{_N{WLe)UU zH2t;rJ}MVE;ob-88mY{Q_CAVuuhk#rTv7u0Pq`2Whu4Hk;Bc#h0ss}ebEPcccj|QBu;tdbE-(iYKwYT3v_jMv9 z_d86{IL_PeC|~pHUQg@JgR-el>E3)~@%tT0a6_eNmG*1ZrpHskgLd2X{slbYFXZcd zxB=hQi|;KRY2V{iMqh-<)!+9(VVgxY^1cVTJmL4E0$^?0hhR;LZmMu%4)AuHGx^ACR&*OZNwW^GvWq5I|nc!ac3DFAR?T z+$m$oS98$78~~)h-iRqA@IY8cFw7e~Vogntljj2XC z75cBygQ5TX{pJ8C&>SR#{c?_&v{SZaz3y*paBI#iZ_OBPO>MC?@;$PM7rj%qC$8F4 zSD`(1!`f34-{|OTTJi9 zI^xap5cL%FAh5#vOtvrKjq)JkOqqS-8cC-E;(Jq}>D*!8;`VY?y0v zr|RDMtl=?a={f&7*pn~n%IB&SLk51R9Cf4^awW1Sj3K{R_Q2T+HqFb?h-rFYAL%`i z*IU$#2BgaS9V^P8K^tKo2^9nb#;C&BwUqu~9VGTzTEelr6$`Yzs^)(DaJrfmaz;>8iVNbg_iKR42%%Hch6{{ua` zIq*=(N@>P!37WA}!dzND>cO#Nr;=f-A8yzl3zR$w9SIrU8u2ydEKx@%=K$`Aat;}# zhHVv#jW-*;=PfV>X$>ZhL3VHDXKBp=;DvY$8fE)ntA^RO($npR+HW-F@QYv)HbD z&nuQ09q+40&-?0=;C=Ndcwb$*(d+H=_80eg*UNq0HXR#k2Lt*IANPIG?{*!#FXq50 z^jlfKPZ>7HlzT# zY<}p`K1z6}mg4zF>N)jY8Psvl=<8UcKKgqSbr|^eig>^9p5NxDw`029VOMy1d(y~H zZ)X(td>=bCo*yg3+nj{=ezXs8KO?Xkwe;315xoDSZDg7;g}C7IggeZj0SA1?AgS#RgC z@r}*Vg!){O(4Dy@yKQoBmYN)vdurnc|EBhiG}dvvZ^wIws%-@$*5eC{jpBZL@m;O| z5b9m6e-|b1YW;@@zN;0fR9;F-Z;fHdd++{DVjsbK2Q2pSKS*>3|Bd}A5|8ej3J1x? zwjF|V$8)p_ohBtZIW#82Z ziNpl&S$6rX>W6rbxST+07y(&c7m2aOXW{Xk>w8f?Cd+$|uB&!r!j^8h3-$6(YWTFK zO!MB=DBsh4AKK%N=S{7w-jK5TT;9&iR#}BbSYDsTeq?o`-b~j;;^xt+FrU$A@xIcA z=c<2Yvn{xQ=-m&Q{tMfPi>cs^OEKPM`g9OVRHZYvyF{0-C~?k!|9mE0`hZv+$&9hW zGm@LDBF7@`Oya3U?I}O*>k#6_c$VoZ(8R-F=@urh_d}Z-+@-w1(h%4Sli%X`u*X+$ z$2U;2PPk`rOI6WLh51zf5hyx;wCM<>9XQ)^T*$L6_+?i81Y}8w2EUx#anOqLq~dEK z{eDEnb#-SdmI-qEY>^kFi&_J(ay*~Gr+Goam^~mg?|rg5-cu(&$~FZ%WVGU*p!Xx+ zc|xFDlkU@ao{Gki+{FV$Lq`1gaExQf_s%gbtiwLWXJWvQ{6IF$%X!6jyjlaACckKc z-$9)nvBxo$UCQ_p-X8WyCqO)^zU^H8?shqlTlmu{OAYmz(IcPW~qHROlbgP&wC?z|t@QiFMGAsOtiqE>+N>-{A5;8UK?eVpyq z*%%RD6FAZ3F4ysFi`BmZPLuz6J}>rpJ^elay9n&4ENRtgvQ*fnH8+Y$xO)zdhjd%q zbkEi0S58*y@`O71u4b zojY^+O!L0N4maQ3wLR0kDVHyFxjm;H$Un+;ZTy=)Di$er{p^(Hr0N(mRjL z{KI?yuyx?r<>w!K-^Vs&@1Ay8xw2Z`^|@5`207Qzi-{+#&dUm$LTod$@7+lpZe|6??3gWpFQ^6`u+F6uwwC? z-~2wk_Alr6{qwJXJMfG){!O1~+sGe!cD01@^qjH9tG!#edH@ zt7gZ&XRo>{yLQQwGtZy8=79}&MBj8t!w=uQ^=nT&*Aac=#oK=H{NvjWo_nbCnM)dX zZhdh_ZrN#TF8km^zuEWD!Mpb_h+cDfz4P__oLTSaz2j5Q9C+;72m1H!dAk4mH9~Bp zzZ&Z66m?vdv=ZN>yxtVzr!gV^9;Y=a{oNT7;*a!4uAJBxlOkMT2+?i{aVcrX(O zXfk|}%C*q%MMPs-wGgk+?D6F>Lj1mp&l`$`l>ZZ&)N8|JiwL%ca9fG~cZtqv1kV%h zEdt}& z=85hEYTsK4{~6-_ZFGxjY7;{Dt6OCslgMRl@s!O<{ zM|6md^t*x5d4lxt2l#|oJ-VVh=-wr)4w^%AVi#fdiEe_ep;UqX>!i{-_IEa(EWwqO z?xEa#1-!LfO*bDLJaZY5>tO_dI(;NG>oS7&P~%)GkY^ll+C`l0Cs={fJNe5J+h3bV zhginkOWs$rtS(~$L7d`!fm%=?-uE%zhp;#p4X+&~+?MnDC?vUzi|k;eJQwN}fPrL= zCFn_W1Jw)6^^|rA-a(SX?*=NnpULLAH9Przb89OR1_wowodiEbWR@~UC*7~)60Rx% z%#8%yPxmg7T=(CQlsvBHoZYM^JuH&lVvqPMK5H|2qLBA~`rAQpbix`cQ=mIp#aUE# zt*?+>;sD)0Oyg(Q$y88|xr5-V>Fxk`vR5IhTF2ekt#N{K^KpG+#TR5 zx~N;uXKwQWBXk=PS+s^NR3D?Q=h{&Ba@MgPHXSIwuYw)@1Qow%^u>#oeghFf|1RU6 z2iE!Y+sl$%&-7pgz6-hiH{>_6@slMFi3?eoq%;eno@Upn!zB?k(`edNgto+E)1y#i z`~t4Ki;$%m+f5wqQyh82>RqEJv5}jQV`=mfZk~DCEj~vi7Hp)V1)3|Cii3fcppb-1 z%LY;I#>ynX-u)P4$)-B~0XtW^>U4(E-`Cx*)g)o;VA1^>h01+j`M z+V%gpBH1y+^Y&9!tG%j*XP?Vc?M@|kble^m=gtv@`B5Uc?qmpF#xveQx(>(o?93i= zCO3LSHxSYuuDy@BsN^(_woBg+FLz|Z9ZWjMHnEpwEisEKID9fFV((;Udh>rnzBmv@ zE_^ON?dD!Ryy2Caddg)sGcK2&M>0jhTYiK_LcfgW}MUQ>%b~7RHDUGD;=2lvAtOynud2pP| zSWD^Nn?AbK#Bn8)J}VN?Xm7N2s^$fq+7--fr!tK}y%=ty-bqAH2@(xX5inJ|xH&-w zKrUGRN(I}BisJQG7f%&AQXKHKhgEBX8mg;_)VZ{jS~8kq(x#qI@TEM504i&Knn<)3 zNu14WcKYsGakeeyOpXP5;Y3B&@O044`jS)Hvy+`5uf!)}CG9SqkUK`43dU3gKz%#dN$=)bf)h+p7ditYqqv~+a967l{XlhK+Bi9) zD_BlB_Q{G<-VdrvH05LndXt-nxuAxY8bwmFTg$DU%WIWxwHgbKRcWTYwc?JNl5Tiy zVk7Z+UrmWVy*8nBs>kJ!_*G4bd|tbFW%mJ1%8e-*NyYY_SP~zlV)H8(8>!76_V1}^ zs&Y}U^Ogoy8Ix*-m|hvZR4D5SaZY8#k(>W|D&zzwaw)xoWRZ3a^YcGbTVnG(U$&^8 z!`1IuDl)ZLq-fVyD+hlkF}hw<$A!?+{c{HT=MH4E*(J@+%ATHFzIpi-J97JbyWF1U zY5i>jvzq(c2l`JL=$|*BO+3FR*X-t-_qq98b1t8E^Mz)2$Bw>yKDV<~o4K^7IoF-r zm+R?mc6T**ftXLL(0s77(A?A4-QB9SZrqb=Ue?*OBiG&CiA)Z~Zs720^BzLmp3C(# z@9Zk+bE^*+n8l)EePwMY8wM{#^6^&V1*- zTrYKrUsI0gb@nJGc61hcn>+h@-F;N=j?V7xLnNkRabg4aJ9CBJt{%x5SKO*S%3O5y z?95#OE^?Rmb#|jD)v`OE>qL#cdpdi#cz3R6HwjM>V*);xJ$?JO6E5YcelHMFS!oxy zxHHeq97eSBKxbEX=k{)D(f&^As$F?^pW;WgAlI|=1PxdW{&#dz*)Hmr&iw8^*1COt z1r|(6eZ;HZz$x+OLvLpn4U3(9G$3|Rn?a7$Y@SCMgO0>VEOzzmaH+XFdL>6vqllGYC8wg;fzIx} z+({N(i-O&qS9WzD%69dT)H=JnuB3)=iJfk)z~g35=K*5Ac|Y&KWQyv|a-_Btdh>ld zdfj}hHenN(SkZ~pArfY9U%rRPNwG~tWz=Ooy_Lr9nJlRNT|LX(KEfE*t4g-{&Ys=5 z<~dLbvVa-1vb(Rqy}g$x~3}?J?5vic`2b^ z(Y3E{AB0DQeKe0ir?Ovez8Bn10JktNQoSMd9c-bH*`)MzXP46bqUuRWtOf!$r`$f( zzD(~XDUET znS1I?Ig$%xq%&N!uct`f$4BExLumpy*n{eTxQpx+MnGQmJ6SB6TuIdlJZt$C`>Dlf zXHTG7aMaVhayi*l(gre(i~YPMS{hSpNsYz&I=Mv~cI?UR?CZ|a;5mEw6}cUKy*X}Z zV9vq}p=Pa4)q#7ucI;ttMGM45iQ(=41r^f016^)kfriKBeYrlUkxN)RyLPcP>@DYX z1uM9kCpVPNqRYs(<*w)*HtB-dayq*~XJh_QfaR4v-CaGBTW?C~BLklAK7<}Gcx7oU zk{aYl>oU#TX%O+`iAHUAcS`Gty1RM~kgGsKsq0@G7!DBBfOerA4Ksr}1g6~{62o>m zXYcHS0i|@;u3{BDe0Zjk4hjZwXY;PU9v%+lg;1w=_V!}nFz&w2ojGm`*{*^z36c^^ znRTwY(2H5%;2s+BU9gWk{jLoR;Mc8WBSOt0E#*!skVdrq2A+ue`ErQ1Zpd}- zTAz~>41_1U9+-oR{>JV!bvqG^CWpAuS0~Z@!FXdzwdY z)rvD>52;DPmwz|JOmoS;uI}!xLJn4%Gs(<4g|6K_Buv>dLfVBX(KpnyGBoY52t5ab zP0Z6`ft= zQWOd!(cJKV8X_YQUFP4bxsy#PFHYouTGQFnxm!A}rGvMyhm6BcviQmwMJE+1ID$Q{ z%xcxP4r_qYc5htlsG#vYwo8YZyK5JG8D6PS$9m*vRp6pHfy-I@fYjF&)O{txy25l4 zuw`g^a7rTOlD^WS(b6et7l^iMhfj(JhLii~&0nOryGg?{m@W1+^X#i^xbK?s3Wf$- zXCYv)$h+O+66fchyae_HBoMINr)_{V{!0PQK4IYsQfq(h+E{tHw>#CeHRptd$h+D{ z_A*=OJ*1S0Rx6`y6l4;R#RN|UD=h=sgZjyW zw&y%byxkDuX;bj?X6I9Ziv)j*l+Rf|AS6ESaUS#Q^!EcH_*)o9Ri3GS@g|oa)8AV9 ztK-_Es->1VY%QScb$or$y3?}6m-zYwUw_0`VgG@yReT-G*Xev+#Mc!z%AUv9t$f|f z*DLt?2EN|R*H77Z+Lri*eWw)_lf!^q8eS8o-0+ojH6~u5Sz`7?)HpZ^l<%Dc%zsV- z<|$KgJvi;6X_olc4BW?CxW<{dPIfv8^PLXvk2$~8E%BLIztp4R^fVwwDSjh8&1b{)$#=-o6UU9(X~cgy_{RI64(Fm_4DU}&ach`{dcSe&(E#~ ze9fBHHI{hW1&1!M#Qhg^QY~NO>yP>RAHGi8gzI9yZs6;FzTV8&5AyZPe0_csBon{z z_@)Wkj0@3Ir(B4-HqtdJ@_hdW%C*FMF66%BtF{@}aeQs!YYScL#08sA-)xEQ&A@;2 zW|V!9bD!PZY1N6EEq~u!CuY)>c-z9fZGn__Z2`_TThQLE7o%+7#elr!V&vY%_Yd*) zYn=Q1#psOh{!38HQ0q}74Q%9{aKgd z`q-tw`PrqA?LYWxcAze|gY|*0@9X%b{sHlc4oK;7h9tM)x^^2dySAad1AJ}X4#;VI zy(0&lkI_}Aae^!Us}(cE0vhwu9@L66C>5cRR>P@t#HExn#d={->M%dAP%YldsjE2^ z$D67sb(?rErRv0;;s~Wa%T((4i%+%UE0k&$4dOwr`Z-F?B@^&T&if_jHL28bPR$UH ziX&RBh-;vdqVh;h;Z%m--c~EJ8ZhUG$C>778fY#OKV-~vvXRB;v`YMuFok%G^VW!$IrRdk*7G-NYsD*E!zNLq zpHmTGEPVG^ti5hshMn?^oh)Ei_eye_u zE;xlg`mByVxhr`_(W0S6e^aTMoQfDob%@h7jZ!ly6%pITaxQlU=Upx? z)zF3<=M_W;rv^E7P;6(++Zpqa$Z_5$Ij>*r(IDMtIdzrj(XOS`uMNoTi0EU?S2*u# zageFROi;N++{Wb^Oys>?yjz2&O*8MI)a}#*pyHUI@{pLJhlt8NPCYDIIJJsXpA$3n zYQo$=sd=Oyjt;r(Br2a3UleH_wO__G9}}gQM`v~p2n${#C`hJ#OL{( z`m^{rV_vFK59(J_YA>h$CdL{e!n`7c_8k}P1`ed(O?jsFs+iBI&vHuB78{`QV@fS2 zOY_s z{HfI~g&C{bbtvI1iQeFrvs8MMTh4~iTikLsj4pG_*>HNRTh21*3b&kP(mRm7gehdxyO6zw zY!qFEj957{(tD6aBO6WcMK%%H7`g^p`c%6N7-cIAdjKCY>?h-vyw&F;z#joA>Dc!x zz@B}71q|r>2ViDj=rCk#UoXJozT9RRphBjH_Er>99NG_XUT6@YJ(O#23>~f{5E5or z0!jO@1(4$XVcpa~vMH>$>gjnR>?1N^$?33gb;6SO5zirhgZMMzABZHJqX%Fr@d+QR zQqnEF8(=@gaKz|v9`nHP-e^+-5_@>5%2O-{T!l890lSmW0DZ|D(+`HFl7RyjD5+!| z;w(fv;_1+B5ZlfHJ0aAw19;d2h_4_vAijn85#r|qM4UVIa^*yvgFF`?&Ooe0T!gqB zaV6q|h+7f&0Q!0UkdEo?36?QwfJbATp1#CCmZ#M<&gmIQ0^>dhjF0=;bKH_~alFrz zAYPAn17HGK1(pe96XKyb-XGqM>)DQyPviOn{uvhy=o!y3I6eU|B|f=b0?Cb^3pp%} zPiv=;VTrc_j!XQA1d~~bb0N3$5__w`WO3pG@P{irC;Jnhgs?9r?rX>M$^CDk{l5~w zfv|?8=ytqM?gR8o+SksPjWdi}vO9_A_GQF35x+!Kk~wxoj6}>roQCK` zyeFBLXh(8yX#J;?ml`N}J~xKv-BT8_4g?l>>W2 zZ@C}w(SgIfg2|qNBfJz+H<0(De+-On*Oh!YkmvBnfulgK4jSv#m5d!U*P|=Bd+6h&hN8NAcRQjT+&l zm3r-{uOPRNj^cH~^W0iJ_>xTHFletSM&5!BBX99F#^?I`lAXrq0ewcl1~_YUZy3#Z z&BNF=rh5P-?~mbk86P)%$?s$OfTVkFK!8GmaueEhC;7PxlWk4?LMXIb}WIA(R}QvK9Q+{5Qkkxo#%ZA^Bh?)C~D~W&-q$n4-BJp5(zI zsCklZ;n?2veYECJG8Jzh(1@YfXNww@oiGeYZs ztFt^{hCq!K!ZX(holS;kt^%DE!`gp_&gMee4xLpK16hvj7GO8R)8$oUuaa-t-A;T+ zTo76s{%p4j*g(NZs9`OzU6Mr`w!l-}z+e$B*{~hhUS!KK*BwY5vNeV$42OXIA=yiY z!@yXGU?&Z)0P~jYUBgLuh76F5d2yC1Spu?L$;Kg@CD{sO3nkly>~6_UBikw&@#gG# z$)b_HA=zYPpG&q9*;UEvk#z|b>>FeQB=c*}S(;?Sk(nfOBAYAOW@Jkw`v4dEzmbiU%)bL?(>#q&Bzq6pImv!U_KTKYN6vi01R8*;vWyk(EgH4YEa& z`E}xKwPdNtwo5hxS)F8yk-e#yK=LWa-Fk zl2ssED%mz<>m>UK*;A4kd^xL^ECtyIlFdQ(y=3cviTwJCYqb>kZEs`*apbeaWjjOQv1O+d3Of{lpLJ;i>+i zzP)J=a(kqvv(TO-J_;Gx+qazdA=8k3P7n31rvBu1sXNy92HKC*MTuBW_gzi{$ZyfY z@>9@-ki{{=^1HsPX&6}?p6N}fH{*;=k>P#7c`aBO7>6xZ|QZU zUa~Lzf1!g&-(->c5B|Rcv+2x>4IvvOqy4(DVWe}4#-dm{sS?c4pH|M7{cb zOEbwu$;S7qrrG4r6p`Ko{YJ2n#4}Z}&Hcsz>zFDmpXg@-79yEX|JiI5nIM?g4gJ$t z4w)u(zkn`>JS^Fi06R019g?jGSOCoLI>8se2xDd1R$z7Xt4Ec3d)_papC!88A?U8yvKj6_Cz@gl=X~ z8Y?7SCEFIX5m>+=(PIA$+5#+RuwWO1o?=C$7}>psKY|XhiNq##J%a0iEs-od_+>VU z9G5IP*pE&n-%FMe{2H51Y(oSy2EPUDqGUzEXMz17+3msS*$fgeRIs(c%w#<>K2ydj zGs$6{S{GAl`!Yy&c@WZRM11*5w|(}3M9*`ZJ)v67X@ z)TnL}1f_DN`&Qbz8R?5ofUWiF{jCPs$2WCOD0z-|ED6N15PbBi*M z9F{CF>~5ukoRKUvY`s!NzSP+^#X;~-B>;;H+oLQXJta$pSZ*LWlBGc`H<2ox9Z{B$ zb-LvqWhptVv)7c{$VJ_9n{pTN8?LeS$~`0tSuGh8_JP9RJM(|_9))2W*&4DMb@!4P zVV@{#Nd0ipMipT{D7C~ZUBt31><{Gu5~8zq>Vss643{?Tnb3#H0?8cHK2SE1sc3m` z&xWW9Wiu&F*V=X^+e{WCt0z45Eo3>e+YEcc{M9Yw0c5wJ9udpPe!wc0% z$OXv?k@;i@HamPGu*W2u8*U`q$nzPlylf-KGF+{>jeL^fN?{whD0GIW!hfOLNY4?N z7tGlPSsr`0{gPcY&gVI+GRvKkhU*@2mOV$Vmn=LYjqM{nvqTv@W*iOMN0w*1%CL{@Lbisy8NodEk@%5c36zHBuwv3#Q zJj-4t$483(!lE{^qvVZ|uF@VQXQd_2*-_GNlq+ZTWZ)>F%Zi%l@d}B}(e9NJk7FcV zFzDAta-3Yuk$ob{?s1&_mg7p{1fIdiYw#^(Q;b@@Eb%x&W*fCWaVxO9jILUGjjT7i z@^X?qW^~n31KDMC)lvgdN4sk2A7t8SSG~MJY@=QE@&-9PTHGsrqmAS=@fqW)m(wJ` zD9R9MKG**=88F6GhPOz`7%kTid%Q&!jdA7kEpq!9S3b{>wPRfQe4A_@jS4*EI z9mcv!^bzSP7+D$ps>erU=vdJX2cp0A_$Qe(R+RR5^zR-YlP$=ODrdm*WAYp_aTlK> zJIA_e;v9Ja*{9@8bbHTp7WRZfw5tHfp8L{Mxnz$pz2yCuf>YtMZI?DsL zL}!KM3v#E+((_BQUS|cKUy+?Uo8)ui_jujIT)flL71@8tUe(I@g^pZB~<(#HwQs@M~rgl;d^u2MSe9L0r@MQE8$?gHB((hy}8)J>clX@45^qxl+Qz+7V1KE&5SG#-Cv4vXM zfA;jGr7~P*TpIJDb;v%ae5UlG@kLtd?b>i_=FWn^>Z)soZGhQ&SgzR>{wEK8hkMyPS$Zo-Q_oW3wNBSoiNf$a< zXJ=U#S~}iUFI}n61W{*U37iEXTSHP4#jyD+*$h8x%KB(SjQ zn&tU+;dHWKh7Z9qf?6c|Jn8lB)+gx~8bhCz zEG+3ryBJz07>P>&q(EE0QVlVb%n&s(A*qKUjz;J#zz|OhW{47%0!yUZbX~k5nI6;G zFvE59qHa0NFoYJET{SqIngk>3lcpGk({+t>PnbnN<9%s3Juca6$!Tmj{RG)9hBL`$ zfnAZhe5{U-kWHPE`KK7kDEf?KDJf}e6iuEb`fg|#*QL)Ay3nw*p!;6x_%l!r^(z+4 zn8I12i+SeIbe*j-80iw7)fz_A13G)ykW1gw*`tO$dcf+sSMup`Wc9$#vV598TjYh` zIR$j)Y*F)$6uUo`FWGx32Mm*F%^X*Y zO`$92h<4!b8K%%$$qG`_*c7@$Ffu#UNT$$?Qddn(p`%Mhf2mA8YM4SzIy+^UO4sS^ z1H*J0UB=lOcq%x+%=BT&zD)hjV5U3DTzN6m`bKQvT((iTlkk|FJuT5h+y__^xXZyVt&>EYT z`f;xtXsymZ_gY4O6O8m3^oQ4-ba92e8wVN5YI?Rp)O_(EyT@w!TZQP!^9OAw_tMZx zVfoOY4&L|D>jX3G9@NeIK5CM>7YFqLR;9B*?^?P~vNr~$u?OgJ$<9K0573+{!7d`( zUL{)WrvaSp)meo112pb>!F~nHb#$oCBD~j8)Ab@2!{7+-^>nKpTZ{w_j`x0$UbKrI zk~sJm`UnldeVJ40H1-G$ zaEh|?IqnfU-6`tq@xgP!vPA0mdg&3mOtN|mw;tK&UY{a+M(QpjJ0lsN8y}%x35NI4 zBa~E&)H@961}StzcHS#+$jy*KAhM(Frw@T=W*Si~Qg9+mke17a@HmsJMGB{eR6#65 zt3^#*95NqRmel<;WHGP})#6TVHtGF7K`kA$ufrW+U+!7unDM3oG)^1 zLzW|S_>BGtorLVD!bgoqXr0t88hVyJN)Im(?5?3J*;cx6p~%a+p-a8D(F+TOZaY|R zr+zhp9fW*7Ml%I7ybI|)Mkh=5E3ztS*v@CF%^7x| z_YQhavYSA+lQt|CY~8T+-aBdfjUwDLpnHODzEPCuz_2v-1btMp&u>7tkN&nqgyXA(eKh12Vd*>ENcPieU^&42 zhu`PDpDwvYgo__O%Hse%bBnm+_)Kz;UeMVp!$BIbRM&YvPos49u;CCLs1Xy1D@Hr3}UEz;R+pFinzon7xk*m9jM@?q?GF>jKi)2Byyu-Mhe#M28K zj7+STJlPmzIEyk*HbrNb+P7m%b#|q_H`^c>nH~OtwMLp*y~XAK=v**Tqk-64&o*NU3olwC?KqXK*4cv{r?Ue( zd%B~U{q%rH{qpeFIu$H%)vEEfLH4J|q!Do9YZ4K)n8J}-!SZ~Q@55Aq$uyD!v zdZLCUOO~FM2H{GySYXXi!>)f&w8|Sr}%Yd(hR(7qR^==DCO+)meo1 z4eTwQz0zqh`&4JIce;u7dq||m*BVP%m}FNVy`?PnAy*levQ)|1Wq;ghDNBDy)Y+!Y z&wwq|*)N@zv0Xaz?tCjdr?Y;YS1`i{jScL47faXK=+3K{Q)lMRtJw~nIXkamZ)^~~ zr+@Z6o!2qvMxjg0-rD&gwn1kHI&Wl$b@qDa&8*;I(dUO|f7y8}o3;td0J?U*JDE*q zA-=mE7~vnGMj{@4m;FX^UnV z(&ZGps_Q0pd5d*8x9~aAkwe26l^7zJE-M#nLTKxoL;ilkf9RQC976-G8adgF9S( zH&uCThwJ`JRrc<1-G8Y{{SMdtm#X}v#RB(VszP_V?y*#*qt5bx_0U-%xlRe$>B`F> zWujpCJz%h6c8g`OQl_($-3BWTovma;lpA&SX1Afr20fN%J<^n|g271pLANyJs?N@J z8?MwpE*O9FoUUBd*<_NT@ISM_86V3>C`QTn`|C`_EZGgCj3i5OO15HD8p~47AzOwe z%2IrGaaK>B2Fq;4=SkF&as5`ZY~}YS#kh0;bR!ktr-bhKsIzRO5-r&~qb_$Fr4&5P z*;;aG)F0i9%GPHz=GA?)()U@>=P!>6=srey1eqB5@{|LD;mDV#y!WiDKF2B-UCeW= z@{`UYyz>=xx5i%SRG|3j?DbBCO8#!qmsn0*_X)}@p~G=-qB2)9J`PS)?7LlkX`-@7 zGCmGYRF?17Myb^96O}rh4evfl`CeyZx=&F;_GoNk_i0KlvSq-^y3bUcy6&d#R%MsY z?&>~AIj6ISy3bYo_G;{j?&Zo*ogL|JSDZR~tGh$lp|gwKtCh1l`&ah`iu#MA@pdi9MDn4bO=->YwfCal2BoPaA1(>v5N|T4(q7Sf%XM*<(Fc zD>?f``z2=A^{7=$2egsz?H=ouUsXe6S<)fZQlscXL*z>4zPG{b|URC~mNDCL*>ouiQoyIbI zol^SftfbdzB}Qi}dcCa-(b%aFuay;bq7U}Snb`YB z<&tDEIp*F!DU)8%Mqyj;pOxEnc60AvmAyKJO6H%Tqf*}Z*JRr?VwmP37q zsLPLtoZX%MW#0_7?ue+fw49&&W~%WoYqN#wpQX;!S$F@D>PnqO`5V;(I!pJ@ReyU~ zq;NEQs{c53`B6=`$bX``S7-P6Pgc+A>`DJ=s!zSfj{BR{*m^CNFa1l@bY0i6-(0my zXR-Zk>IR*S>sP5B*O{}QUHwXrWn;eu>Q!C$TE83B=vOrMS-+drNjg*dFIAW8EU^Er z>U*zfv1IqZQ!RZ})KY#aFgU%NAzgLYvCYU{EW&iv5PkZ6tD;~8u_j#|8tls0{ zoHhMxb+#wxq5f;tRT%D7uUB$@p=;GzWJi_rIUCtpb=@&B>i?Lt4J_$#jjidwUiC%x z3jKG^Q~e)O{f>)p-bN$YpmrCmeV{RoZBTn5TaM%W1~nO(n1ME^Gm)(|95&YX-=LOC zwmp=yI|U;RsH;6L#%n&?Z%|K(ILWuhr$BcJ*}aC)(P#Q^R0B>3HUikgs_BG?^HyM+ z)OC_=0k&Cv?}Vtc!=umj-=c=RCd&8m=!^XyRh_R1-PO_G0eerfUSoa%=5tc8IAB}V zEM#(*i8=+Dn7Ov8WhY&^-mcD1XWINUSBwJ}+$sSh+Hn`$^LY>{b-7pKBd+od)2^u z!BgtG261nC<=Q=-Quj8v%J;N-tU)VZNWjzTJA#pzTqAi#{a7%=pxiX}jQWLS{4MG; z>UVlLZh2K_dB8kQX>63ovuanJ6_VYm|0&T6R^&zo>{X*rx$^Rynky^~8$$CtKBq2` z?6KUL>^YVHbs{ajed-XMr3dU&ui`$(^SD>+fcg*I=Xl<$e)96*1L`}1(U>VlazOn^ zvO;7ZOUs2*HbS^d30j=*s0Y+6x1Bi$)m*v5CUwTUVF%TdH@fT22u8dtE7?JH^$M5n zd3Bv�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

61x^A=92?iZYX^#Q0j$UplU&M1 zpRhQWav>@dAbvNI6O_PC$TW6z!X9=%3S^}u=_q9i#ZK_P4u}MJ0ESH~X5(&b3U3Kc zyP_8JiE-@AOT#;Igm|H=l-~vqKU#pt9?gyoQxXptG=hR=h9d!^gn=Z06>8P=5TcX5 z9}-PiQ$l!RC)maX>Ki`_SAn(4hs&6t5LYO*hBG;!FhFx(C2}sW0u`VdB$#SPXe*6# z1LZQ*4P@9WVfY`yO$EG8$I%@KOBD`I0vY(H1l+8Y0>Hz4QTU6}SLrSlqhJs4;R}Zq zOTq9B(9PgDG1OVZJv^`ngPFVx$>QNqJI#i|YdE@CoFelgu^_Nw3IZ_2RVrjk`No5|C` z_#~u5Mz#lv0~m>fZ$PI5YVz#iCxF1pXUoNKvSJd5A;DoCP_j|5H_ACV330*?N>m)e zA!S26q(Uzybi-BZK+^K^av>TW1C{6CuYCLkLp7YFLK3|J5eJNrNT5v;jQn4Gg+COo z1?nXSsYKgVK=7mPV`XqP(>=>4$e7p(983Tbz5umcNQLEhJ*miE74zLdDzR6^jfN;{ zGTO|=D7_d<1283MF?m+pKoSIggCaMn1BxIaS=bcCasa+%<2sxWzoDcW$WOQuCU5o4 zM39tEVB$q6A>8uDQW??cY+o6#GY;tRET0CA03rM?p9Rf?^2vBtwxX5Hl6v8|3@Pf$ zY(FdkEDMWqdGNO zsVfyYp(vkqpwJ1~AV3nkI0?}lVTi{%fIlVVCeRuDlfu+Spj4#}03$LP_;vy~TZcmk zgn)Aa*sZABI>4DS`~^N;5l&%o8v)glm`eCJtaL?r!RY7egK;riiV8E~C;Ba+ZaQr# zMI{TUgaph6Im4T&;ExKG7-1HtKoS1gC|G3i!r2yp2et0T8I_r3Cwg5$<0K$t2LdIp!RYXe^b2a;BL1hQ|=LjI_l3gNhVL zGNB~ftgckT>kY@V1W-dtf=Yl`6)VX%oOVSxv=s1qXJZkIR#Ofzf>r}GrvwIn)PjCh zv5=7j$7>$bds?53ec#Gg8XJt;zzE_{U~py zFMISu)y|NDtMLB}cEAK&VC&;BJ`K(Uwn1}hAayZ24FKGssfd&iEjY|VM&c&s%RHn~ z^z9^b!ZZ(5DCv&6$Q-fcCre}!XaPbQfI!~TYPMncf_&5Hp~5}TGlj!E8u+LWj~et^~5re7V>SF-`etQjCuE(Xde}G(I@r zHEdVDgOnrcuSjRl9O-DPU~N1vwUf$0fsYVE52i0}2kaJ*?m;S9cyT#={PYd-`c--3pT4FFSc`~pi_ z<}(!A!jA&x9nb$|F$Qh|^$}3uC}bYUI!i_UKt59urm`a1NA7>cf0UOfH+|dDm;+_>;FXzr+k44J8ynG>Hp8q08{D>xoO2FL78BDIw=qQs(|2uI5+ z1|z$ChrD7KoI^R8ayc9kRgetauTd;7k3t7TH>Ls3LM9!{W7x5T?>v}hOaT^GjM&0w zmJ3|D0|_g4LsW}ZuDoJ`6P`PyMMnn7LPxgDnZp?Ac}jq_;bfM95V^89D0rpQp!~K` z3PcnS3MoQ@^d8`O^SRBcVa_9H*m)4nA_8v_yoj?VbPO3*N~JhL(pk#hL&(r*&=PPF zP|}2))=(2tR969&YDc%i&oubMvn2&uLsPqUE8B!;z``>{g-GbkK3q{=f$b0E;PpYv zMM=wVU}p)@V>duCx^T_F=>QzU0S`;X#5L@T*NavuV?5BTmk(xSOu|nphR$ZQI+!PE zG%?&CjIIr=o(#6pf61VwuY{_Kr6@)P)&oADR0dsMzR9REXz|Yj2UC=ffbz20gQ8poluRAm zJXnpK!nFjH6Y>-%YO=HiGIazUs*Vf>CYwq?Iirg922D|RzIzvKfmUPGX0(q<%uvGy zUZ6o57*Ch2g|ii<8%nekRYyR1+a_p=5+hSaDxic~Fb`nZ$dF;>{c0B z8R0F$)fu7c(1;A9Av**87;m9AN2f7qGwiV3Aa!s=aJI47pzoiVs|gE>$j!~kU>0tt zPjOBb^?&4FVoxEPE`n*5?RNcm?YO^8Kr^ug1xXrR5mji+)*H0i;GBX2RQI+afaUSu zpYcEa6QIe|f)8m}ltWseZIr{mj^JO9enM)i16Q-vAsl>mqtd8M@EJ#S0jUHk1-&*E zzC1M^q~YIg(ZjzX90`Ku#D2FWaL{8S7PE{+BX>hDAc!X~rGanif$yJ!e+^JC?sqWw zFZ#fL8$~tXqk|Oxw?M5SJrcq;H2YsTl?8D?B~sp?oOv@Ae%oU*g@17Y{w1OJ`xwxB ziuB|~i1?K%_}4S}v*|(A1hAN~W6>K5veBH(9y6xi=fP+8l_}sa96rXw!nOE~3Gk-| zJ(`1mYOtbUv?@54I-rl`JCC@PeaIYw(MzT=m5-uA0Ng~1dCw>FyBG%a+LwIzngMDR zrTPH8!50Fn(C;YV*XlBGn0L!tyd??z^+Rh*A#IsoLSgVz^dGM=740K_i&_qOwI`n@ zK6L*g(f*mkv)n~ndl-fKMWZ)l!LgWkWZCK)f%>Z1zW?v<|A&96LdpevmACx2C-VRP z{*AwVZNP_6NYRyTHcK3vjOjS$g{wd+TvXX+DJWVf6bRJLw4+4a)XhQYBc|v?iBnUF zKqRPaAry!fwV|Wvn!FNs+R;HkEfOsemQ!?HUO!Qd)#?*b8@@aGB5g*qI|bw4zC3v< zFK|(%*ATi=w3DuMSh~moKA)%v1JmjCAmrI?)$F#d&eF?F+MqO(rm$F*8WTK5uSbwn?aji4jhEM2k2d}bsgQwY09|AQI1 z($28nSs_YFN$sKzpc~?>Ur~&%IA3c}#iqrn;?j~^wU3O82@0d5!-HC=!^71L>H2sj zN}DSoCk?t%P>+vUftYfr6u1LI5I6}d1p;bI-FnyhpW6GT@saZdL&mL|sMs}a+x_8< zwLgz|=D)_JOp}|gnIV02u3snhT*nQ=0}D?rANpzLpv7mtYyAC;R!cK$P8f9k>lsq_ z@3S;pzgqoAe2vBq!HqWhek{8_{A>m-|8njhJKS2QdF$ry)CRQQe=jt`?M36aS9_}x zcZTGTYT&+R%E6~UH0j$T{=urat-7z$8%>dC{iS!iee%`iwm&!4`G36r_kES^f2%a! z@0{kj_sSYy{br}s!OkNe){$+glczr`9=_Od;kTt@7cK3vKjm%S)2mhAKM%V+KF)1M ze2u_QmHobczPeYt#Nutbees9S-Me{c@>OST#JTkHGxz7Kx@|aj?Zgftpk%?)N`WK5 zh?w>TDD`y{d5dc7$-5pbth2$%;M&S}#Dw_+>g9UAK(ymqUsQ|sF0WBP{N=?i@x@LL z+PxX{W=qqJ2O_q()9J8*zbJ|BL?e{fXeS1wgUo^v9Uzsc(kdsf|1v50ldy!tTh<*s@QK$c`4jhm@gsWgZIk|M z^!;>)rj5V3l0J6lju#hyNPFPn-TFv;@mA{elkh$(mey;wy55Zei}$*_etODJSm)v3 zug0lPHCy9siVXhJvserV-vny^Vjs|tv(b3E~NwBUTG zJmTPuuIMOp)KYwv{ZGVKeY!4YdLMp$j#ibX%PRs*jvG*sOptR+oj0oH=e(iJ2B zCv&q9WTd%+o#yWpOfv@dc_4{@J?hx}-e1RmzwyRa&z27BHhCHQ&HHV|S4BQiZQp8d zg+KmsdELI-6Q54_b%6+;J^}{-&xdbk&Vj zYr7^Tj!5iwK;b;-vGmpP4r||xJ>O-yU*PN3K_^d+nl)yi*7M}(BaX3SZs_lB`g3i& z*yXD}tKYUVVgC6UJyR7uYZ>3hxU6e>ZUo&fj}c7$07f!wF{%SkTKV_A*(Y^kw=sJ@ zjyfs2x8l=n$M%k-JHu*E5s(+l;^|n+{RyMhFe_Fx0a~qPMANMBP<3RkIxMJpZnh>U zyd|9*)G|A~MNn97c0@#roZRg2aN0}&9`n3+^vqW89)cq+g2TMMcO=en@~69D0hmGq z5x5A5z%g+jBme;|14;%&oJmIpg{gx=X*G>RU@x8sOs0VlEccmG> z{WPWZiQPj-UL3t@W6XTxu$o8QA2h%8{kCRx`o2jQw;DOHU4`S4uLm~j`{VGh3O+ir zIMttP$!pGfZ?()w>Z>H2m0_koeU#@-#ezxG$%Lch6r{Mgh>8;acf#6CZ_@nN0w z$@@3BJygwoa^vrSKKBm2)%;QWOrTS}`PWVqS1zb!xKRK2kY+Kzzx{RJ^i2)iY_tb>kT?n84_kR9T}zu z@~dT7C=h0$BpV8||E8RMmjv5v=$TQQ&e`ibr=LpIe)gcWf;M%2)E__g_}2k{&-C`V zeyx>hq|etOi$bg3Uj4Rxa{coL>QY2^r*TKus}i0)%3qt*Y2xzTWt|4j?I8X6uZGv= zmyA8R+88_Hr;1BYcRy*q>_|r39bdkzFV9TO`s>({%y@O`jsV5&cJxU@ zV~@ak-?vC^y(qNx8F(JyJv#39>=x5yH-a15x;oB>E06> zrQI8{`r{|@CtE~CF4$U{vApJjiN`!Ab&J}+)-luJEF;1C0*v&c-JxVq2n26MV%h%WZJ zbs>nZ%{Hnb6uJ00QE5~Ol?8vl!AzF9t*z|Wu3Ny&I}H_oHo4)HHofQVWppZ*WeIc# zI&M+SqUbSg-(Qxo)doP?Py`_42~NQ8Ih zm8rf7p9k$(7aptp-NVa=>T@NccikUmeed}DXtxO|g>H)E*25ZioM$-wwBYFes^X>H z09in$zrW}{eA>iCbvioqdU0}To|9>L^9Mm8H4pz{Xd!>5-xQTs`Krt2iDBMaKezE$ zJg(+E)Bg~E?rhEbWd}uD&%SAP&42uYwN7so0qxe^esyEji1?k-ejT*^+9hvnUzPk| z%b>CgPT`J)%5t^;O}F$bcNV|7)4^k1&aAho-oeB6it7%!IXyZ+cVOzI=|?7Bm|J(f zYsS1sOV*FcAL-IRXy>2-l<$mnPrQfz;XSg!jnREHpz}7!epJa77{lnNJ z+iSgcGfdpSwDksIyZ&!=b7$Q2Sn08~MXKz_1Fh*wi4@51hm8F8&JRcOTlsIuZ@L8? zP6LS@5k|L!@>`9vVKmJCd&m5DN$-V=3pQQ5)bWcZ!v+M`zOnn}twXar*H2yd!e>B^4hpc{OTy-ZXmH5E7DrZJ|uK^fYQJwU*c@Q>} z-X47E4N54wVip#@6_e?TiMGY>;_PLb|2cV9dX%m6Ui|T*v5Im#Qpf-!4%4u104sj80zzu(+5$w_>8V#k}0(!8#utoh>h-HH9r zm+${&+7n60Xove#nlz|a{N|58Zx5aw?D|4_vv^mn2@}YtC z<&6e8M|GJnuvdIcja^%|Y)r~Kys-V-^0K<+3%uyud+p_YeGV_ESNBxR{igSKKI?eA z*|`g$<%x}&bZn5>>(_1%zq~qo{?S(Y-4y{QiRbTw>h7Iexj!KNt4;k|k6S!Qv$bfk z;>*3OJ3Nx>{~8}!u=($6oexi_e=i(QiDoW~wgszkoE$Tg?;oe0LM;)#E<8OW`N9O#VaQ%fqs~_h) z{IKruFGatunE8Xc@mse;y)!N()mePub;yFY!Ck!v98oO&OI;bbm#z%lDHI53z;6GZ zy=>cU!a0u@RUCxo8lhiD2ek{|2@NK|<($=SG{4ph8iPznks1i4uP@&TtXwu-U9Wh~ z)wG}U=3S}n<45Q4y11yj(dmntmxuq8yTHXh<+bcFu7y$&RSKv!E%jG=pE?G{PQQRzW?L1pJD_LhD9!U_Epl@>$-J4GU7ZNp7$Iv;rXL!!A*jP z)p;juAEKI)1fcI(`kd&B)txVo)ap$=F!eRI8gqRlI> zZrZ$i=x@t*DH}anI96M7U`U>fc7Eb`%ER<|vtSRS;JEvy&WA5`8*BRW=;<;|lg^(- zZcIB@u)+Uy{Jq+brG0OW?)_=w<}>s95-sa9`nF>JH-3HS^H(2C&s@Le+>UF5 z>R-q?+14pp_&n{mT~j`DIk3O3^LeLX{l^Tc`FT`QkH02*W|i0L*wb&t!JFf+7wJYG zqeRiGrZttePL5u?=#)!mdULDVJ-VMxzIeRRbls#O{$tNI3>_Bbxm@nPvTe%XZSx-2 z`SZeW=OVj|TX}0`^q3oO?hBi?@tgCvU*nOb{*ym(+PrY@(_Ovl{*YW!C(Y%H)CHFh z9;GWAcyMeg5~wR10Gq7-pJumK^&fzu`|#Gv9ip(`n2rLigGdP2jm|K;xq_}DyEj*A zi@qXNL>JBcg@Sz}NBj5M*t!3TsBa6z6XN8)!BrO?f3o5W@z;wgUB3XPwFfY*U-DeR zkrV3|dIv0RbRE%8B!5?(!IVDvpAdH--3Sx6zkQLb3Z>O*>?GUevjp15;T)uuU~ z&mR=rr|MQ7n0&ml_R?Fkv$f-QpFRIZwe))J5!)w5_5b^@eBzz6EgvQ&w;3}d(Q}jM zsJQ{N#(orZZg{Py;_K@=iQ2@J)cz&@;Dq^?#$9Oe>7HjD0`?Y8ygYcv0qtUai(hvQ z{Br)<&nHbBJLQv=EgD{|Xs~MRv+Vd^cdCvELN0vna`EDW>&@Tf#Kmq(56WYra6R@L_)G;lcVgFI8`6 z_;~Djy!w=8!OA(K_O@BS;iyy3I}<+>GxqohfRUltdC?F$FF1cNOXrC)0na}F?(xxD za_0uiv}hKK+?(G zSC?Pjd49-eXK!`8PezyET} zaGr7P#)0^V8eD-2QyPTjAXumrm^ZYfHO*1J}pTpHOuB4{@KW z->HC+hvSF-@@=ad50yJ#EN&5hXUv+J>q~|V`h7vCk0eL^S7xl8=+(0BFS~DiTRMC3 ziw2J`M*1Z>zxw^{l)|m!Kdw18F#AGkcE;V+Z@PYVFnVMQhjxPE?1kGmzRK^Axy109 zW13srofF$HQnc*!ZS=?x`epA%Fa37}C6~GEtQyj1VT=A3JFXivKji+Ng62JZ&VTV| z)wQRa`i9n6rBFO?JoWjJNbjE_?hc5gE2Tr|N^utBZgHD@2B`uEOI1)Y_J1O3Lunez z*2eF1=;gG6nr=ZyhSCu&v16t=%BpFY{nxctrO;X*2%$a@0(}5@Zq1|D1`lQMx(h|C zD?O6Jzj^XikGc!n*J(1~ey`Nk+a-}cqJ(co9B}cw(qh1O@(a$7BEOw2*?73+c|i?z z`?KR*%W^*bWLm!l1sfJ5%)6i8_sq4qX`7vz9oTSjRnzrD95?(lqvz3nKH~eigYJcP zX(SK1yGE9Ja!c&jeJ&gfb|_hs|MXbl(^eUay`RN@b3HO=ZBb6d;4c?ty9b?ZH}&PM zt5VnV8D+~88sBx@vq(|8XIkrrZ*Dd1<>8;yEpW*Y!*zM9uM_%Sc<>-*%E*gDHxC_C z=VF^p6Z+g6mom!d$>NZnwU}VEtEkAC4 za@eLX)+_6;Se09)@$Y{lFkyb?*qaUeoUPlbO_zh)y0>lM@aXiA-XZ7f-zx6o-Z{Q> z%S-CUuC>C-%uD;cw(PERu4|{eEf>4rub;51*7n$8akuv$FbuhFxZB{`-uT&v9)7Fr zere>ys-y&Z#hTBrRrOxD;m<1@b8qgSSuym%j}JQCO=!GA5%}eb;d$l1jL#aJxjAIi zPu=Hb>@5upeEgvBK;WciliIaN*?(hn?6`xDiHFWDj|nkNe^K;uu&PHhMW24t=d?)) z8};+Xu{EzQNPaeBTnw1`uB;qid^KkX zY9&-pj@eN|oP6Wg72m5**B=*7_rhupXd*ggQPQGLV-h~-3KZ}y;99_}tR~8&!!kod zk+SQ{Q+8eGR63cb?ApJdE2$dzCc0uFoV-d@F_W&CMpsN>kreCz%tX2^Gn`Q19riBW znxoG)f|cnCHHNb6Vqpk@ zv~S*%G0SINPcQQcK6}BGS8uNK49^?cU(9YlWB8dem&yCJnZeE4ygXnyT{!aZJ#Ftf z9sOu;hgD0T>MmvPtrxL;W*_aS$-_U3Pwjfa<%?lwd^#zgMz#N}%c+fj4Y<`t8r*p9 zFRkk=Kex@dbXv=s_j8WKwjMmB{!_*9FDIKuPJDK(kubi=x8pr_E?XsbnfoCBb$;;l zMNQf^8PFpk+uu=F)N9s^+asUtoAflk>D50!I<-6EVNt{NcQyn(ICbTz+lJYJGiN2a zwRV0Y8~3CCfzVnv9~}z%q4$EV2`!zzbNcqXb?fhJzIe%NZ0EQhk)Z_u@GLH%=^{dFuB*+0nOpOXq#sMp7y{E!kA!Ut^C(v+dF4 z@9K#5T#NqRE%5iN+K{T5e=N?Jae?}Aas2L{PiHQ7?9|a?cDes4s_~&sbC@DwJZ}DKy(7Hn&Mmue4`)1|wWqtN9 z9y_=Dz;4MMbGIvmKr}B;i{wiCze|KSF|07+D3fCd2C)AZ*SLjNwi^!KS{ohtx zc8`R-ljfp|ThOh|_y=l>)DCd+|JeH#!uK`Q6RE_jihkI%@>}-?Q8HeP8U-MgD7^FyEdB1NR(1HMUaxqoj1gMaMCo@t@u|{t+2<;)USKLdyzbDYM!aSc$;*8Zv679$Hu@@@hXoCYkt_+cuKcXUoOpWzU|_6Q;2iZ ztkBdwpH*g*|Fqj-%I?cQl>Rv8$=%YkD(BljPj??%_ptwR7m?!jj(vLz9!xA6@IrTX z>C~@o#C?8j+XNBi^K|0AiK4r?&wg*(u<6~sjkjH%=d*Bv`@ZGP1Z z*X0xE-W}T^{=1S0*L&?R@AvS&{Ukr>g}RQ{tz%SYx`k+>YQXQ$qk<&y^?#k)X3zka zqx~i=*T}mJFG*}BcB<8}O=*)7^=tiG#i*x+g%cN7DnjW>MKFtg2M2+=QsD>6e9Sx? z3TIFR#H@q0hoe#uA#rB5+e08)R4HfxaH|3pNWtl2nwUyM+dctX{mnCP}oJ4ZoBD9$w0bN)RQsP9V?n31{MAvYpByC z0;UD64poOWkAU&Wp%FM64zu*I|H(`n(GBoSeeL;9@$BB^wpr!tx~tT4d@EJepNg5! zUysmD8(>QJIKSM9svQ01!La;J%`y)ixTE=Y(ARBpoA!R>l@=gU`$yODneO|8qvG>n z8oK8uI@bMhzpS_{z;Dx zV?syynKXG*GAq(Iot&EZ#r}g|_BpLl6a{|g^J+}_&TE=KTe$>5W?e6jIliGDY?LJS^CU3;^+e_&l8AK>LoE| z>MsBzH>)*M&u6#F7_XlEG-l|q_&SHe@_UUg?E2p^Q_ug=?bxJyOER+ZPq&^nx%W>$ z%&B$oKaJF5%}8iM(m{0dpwO`YR-~RC*uXqpgv?X8OrYp1zMv~6nOUe6bZef4s&Fs^(_q9)@zl`nddh@&Mv)Wb+bZ9+)>EgQjEx&zv z{JDD1N%759f4}ZtSexGR?V;Qw{jWX0`)Kg)?^iBpclvQXiuG%)>_V+*hadZf!??lHos26qefy43{lX^DZ_0?aZ8^sGlKMwe->xPiO zzq<2z*v_oXIhVS(yZ`uy*}0P^yzQSg;>w|qou@Rq*|Mtk#{;wH53O5xVBXRtQLje~ zpV5Ev;4cf$+?e;u_s_@+)1G~|+-b&`WxE&ntQWN(xqVyt+$-vc;@$TciztODlJT~WoTZcL2hfbYXaq8jlk&kYCG|=%{AJeRQGR@B$ zQ~mV2AK##^-BnAMO>Ol;+hOp%mn%E2d2!Y7iDrPlbXCQ%6^?6L?yUOm*oDfih7-Qe zwvQJ0mA|Pou1R{!&AopV!-58{-yO%yaHSqu2lyq?IHq7D)oo1!dYTlh38nW_YlBYGD7R|UVXy}DQVbND6K`yAPcf5fg9-KtuXlA?V$Afr<2+tydx zAMAd1w182kUR_uvRyXUX$BCrHKW>E%>Jri#^);(*xFga#wOU3rxbHXB5EoeMs(71m|;~s;? zo%EO}#q_0LNHEx!rsi&Dy3U5K2D+xECeDW12AU9GDxvyPAsBp~wSsSAaS2ejb54G8 zHrh%9CRT#9Rn=`E~o*Z7A&x- z#lXa*ZVzQhNJC^N{EY?4njz_B0*#`;hc3W9)CF7y93XAXVviFR!r1H!6|il}nDOw? zlDue+sq)X4Zen@Ex^%)pzx`Hi;n&}@9F*d@t5SDL&M_$; zc#RlUVsDvhSp|%@23Jh{ z@@=V^*1mma9AV$16<>ZR-_52M#J}v(&09;;mzzsZY<}s$m$~qW;oi%B@wPuNR;`me zY0hP!!f-6su!-p_Fvooa=eWrO+epCKj6ojdYGO1pkU}2Q;zb#_z!z;QG@dtTJY&$fkwpYs-Zf~P zVbIvHq;4<<7O;-x)IPN%>~cV}jd}$4<6mmWW@FC z)v9Y&rfiI#?y~6L-gXT^K9?tNnm=CKU&DCo?R|c>Bi&Br<-F;vR~J2+d*HWe!Jqo` zMZp>~{B?Qj7k^^ek&&aPk^jo`i=GLySu*3{ug9F-H{R!T7r7ev?d@{0QvFL=hvV`l zI|Ml$DNhsK=KAWI<+n_G?Y*C(Z|xSmbobW5!><{`?yfN7O=8?_mY8_2Yy$%W08mQ< z1QY-Q00;o&h*Cz-`5xv~zyJVGsR;l`02}~pX<{#MZ*p{DVr*qCZe?^dFeNfVb8Ivv zGD3H0Za5_}LU(XDB{D*HaA7zxFH?DQbY*QWRA_Q#VPt7;XD(D>b8B-hcx`MTq8I=u zpcDWA000000000000000000000002&z3Xn|MwT%6e}R1mZW(AxiS!H%1ylE(~6%b1%%iA`^j^ zC*CxPvm^=wc*L6*Q64TL;m!OoDqsU%7{epJm%$n%F@c4r$%B6r343Cp#`cn%{}$8y z*jd+C)%AY=6~lNX)L*UM!SNT5!ab;Y-4 z>oL}H0^&;~@JrlwgH?r@J=;!@Uw{42{~FPHMC(rlt!-K5iBb4AGR-4ilt&V3#vAzw z+{nFQJL6p&@7gDR*J`=n%P`Bk^SzTON~SQsx{1D8kfChS?Lx#T@0WR*B3J;z(7i(A z?HF%I@3-Sek^kUl4UE7U@5MMBYp^CF&BF1#WU zKO{*c{5Ep$ee!{B{~b+|dT6Zor+2krvRQ8u=WrK+8r&=yAdMm0g)}Tu5ui6g5(oVe zIXHV41d#$-e0emU{jfj9A7H=mf3af(me*h!X_gdyxetu{{!a^}qZC==$2 z%|&i@%2?1bH{zYlau~#qB4dTw#0zHtw53UOA1Y+6h~+2~dS8FE-U{ItJc}Y%t{voL zjgiqkm=Hjz#w6bmAkiCy!$X*nyU4Dap(HcY#d$xp+jNN|a2_Wu=^Epfdv%res^@UGD1P;b9G_c&y zj>4*Ru)_VfnrqcKE>Fy9wxCahzcCQ}@-lX3s}0z^bwrvD?TV+KM}D4*rmR#xO*quT zIV&~1iucu2|C+J|c_W^m;M)^##w&t@Zq9%Z-*}Kl^p&q(RZEl-;ye@4J?%~HGMROB zV^0`WB?+KwnF4c5v+y3TmfR~*L%#2GVsS22aMsD21qg*P-N|hTq$Z65=&@ur<#Ot^ z=~J;=_kR@*_3Wmvcw0_ENg?gZ5)U#O0=|#|6&BN0 z3P$hJRC#S0&2K6=)yuLGh;P>b@xs-<8o?4||BPI}esGk;a2cjrA6{oTT0w_MxF>-= zs0uh$81x|G>lHBuHQhES>3CoX(97jfzFY{zq%0}YsbKThgyh~RNj~7A77GtmdNi*E z@}S`fkx%>B!dqtx$Cq*?ulyL4^rrDEwn8=q;T6{E3{@Hh>4+2$?=4)VvX#>!f;EZ8 zTX=IX(iBKmX5E^c!nD53yi@+-=L^n zP$*BWp0_pkr>{hL3Ij*k9xn}6pW5L`Vyt@p+6-~Msv z{r=}ae*eoKzyFUvhPl{CMWTq9+;#Fn#P66ZzYOCKBH(Z6-|Qkgn=kTZ-!OQcz`r;? zXt;pbS%HC(Lt%7vw^u|fUWC~q0ZQ8U=1`xh%*j)Nrk5pCR0;!SL0`4!+|lIFu~UQJZ8zPZ07z4}IS zb!EHH;K@5+ap7-T6rJj&8**MYG?-q5G!G2;?j%k92`4UBgP82LC08ks3h zIS7FvV2rpQO*{!3WceN$38H2iEKZ8syCL8i#)0^V@D%?l{0P4Vc-<1cN4WW{|3)Id1$rdGLZHy_ zjtklw{3iKxrnKfj?*=ER4C>$eu#%ey9c4b;aZ-ADJ@PCBXn}ih6sJC{FU*&(iY$i{ z`9Zu!VIaI81i`0rveK?KhiMUKEdZkBUY*!)B29J)4)x`9`BL1A2*L7$c$;M5U@&oJ ztiom?XWtFQ|FZc3=)F>xsMxK zmR^|Q$o?xo1|jNFfOc?p54Yed3g>Lmx>|(sX;Q@bn<9TRyY%D!t#?HJ)HGF@MlyjE zr}n;<#-Rz`lBmcAlXX@@<$K|g+aO89dUXTiQ5GDyIzVTAphBIX=j*wu&HG%gM z293Z49(yP7_{VTw%#n@&jPzq_0AE^>NORvI*oL%}(B5}t7t!~f?K8vdC{dFTOPI=; zhS?C_ZbW3d=0C@I7`-#&4+c_Vf>7$Or9eL%X{*`dbvPGEk^hR$ks-F2^Y~1`w6_#q zWKMr0@(0A#qi;yCzlifce+w7qBN6?<2^*FHK;0E6Lm_?*^SgIvSFntim&1^C75aoA@MNg0waaVr>Se_z1`oV0=UrS@7{bfEGQF`aqB%-uMy(gy5=o zR62k=BGTB84o`q=X8#Uzjo!ZHU0zzY%iOC=f7 zhvAfkScrg=P(UooBHTNON$_A4W&$ZJ{Rjl+APaBfaJJ-I1rNF_PNC*&`;ulP!mrS6MDwV|f*d$H>H1xL+s_B*P1R8J2xOnb|pi^eO>o2VU zVlU+pVdAigM+J(@wjK{E_)&&cUELM=i{znqLx-MBDmzi6oc_LNOwVC=cYdHv#2GBe z3oy!lI7qxg->NHVy`xwU{1#K_22mfdP*;s5I8OMdo$vTOOvRg4F_+zMh7@3xs5`9@ zV#y+E%l^r1hDHxvwCi!;geo(BxdWsiC6VNOQk_|N8F0hEwk%ETopcCY<^B+1AntT# z1c)ROXh2};glGej4^10*QM&|(i3g7b4C|&0tn5?(@D>O;i0F@s2=skY#6(DZF8~P> zqZKD!R!r|OcQ2P0sWhomu!WDwMTT90vnX~6Jtids3GwYO)17gdrfOLO!h@*Dz$Ar+ z-8VYI8#jr^5d359)^|xYc)Q3ZPo_gq%FSm?q9t)mpH?vVW(T5+Yj?WfIghe@DP^I- zw>c;QYj|~$YVCqrU1MhI#cW8g7Hw)rPA%FKdPqp9-H8xOv8!5w&Amuq94b}^rmHCf zD2Lnb$pblW32TQmpHZYP%@veKia5N)DBR&uRhij#nv5fDhQm8A4VnX6<9My>ch~9i zN|Z%O-n~v*XAHJ;K$qD!Mq(lE9=#L;h3Yiix}8G4tGz$w&DPufDTxBO;XkX=4}-zs zgzQv*@_|BsXB2li$PPJe2d{f_lZo^m>rb#p;b!UmYKL&(800~i$_ffzm}f@9lS+j+ z_D(oHG=mE~k=fMc@K#9>P;$720wqBTZx+V1i&O@L?D7;o#IO+k^$=MRrH}CJ;{q^| zimMn9MBv7rQT6dpQU0C&8Pm)L1IHC6sumFdLOQisj6g=D!fNU3-uaI)U5)re38j)) zbNLcO_mQ=621Js2s8CRb_46J8Ws!>ekag#O6`~Nzz!1(TOgs0i1@8i6Xg8Os!dG?@ z6e^SABW7vI-v345h{n2k z2+34dPZ0xYjL4;&sWqdeYAQs4m5XkQyfj$dB*9XbmkFu*)-JB*ZUx8KVPGZu+8Op- z%c$2q_6IVBBB28~*!3le0>r-tgvtwXQ{3K)^mW4X^`7tj+R%!S?+laE&6}}=q_Relt9a8dPDUX;j6_}J6gc$Mew>Az ze|(ODqcYD97i&@<+Lh~tXk!oZUJ_P49MT75+34e6}m z37(lf6`Y(q>>QBKNR7u-G(^c>>#}w@FID-GVl5};hha;l4|tSi;Bw_K>2_J?Ryiv7 z!gW74`rf2kZc4SR=$z%@oS1Hz)vuCh*h`4j?21Joi&eUZ(gO`L$x4&T)Cz*U0d*g0 ziW1QJ2SNc~m(Ofo-CE_Fl=)?bsm`rIQJ0Lv)a>q zy>;cyEeJ@%wkLIufsjD_{H-6RzrX)_^8TAY25ySd8}-rgavJ5Q$s$y-9yT@Fv=9?o z7D!Nvny|?8#~)OGa}C#W@v}J#>z8X)iH6>)EHK*_I6x#%GEtrYN>uU`^2A<{tSj0- z3GJ)Eew7Akpz+n0A$YoGgFW8?XtsAUj`x=^!#s)~{4AUv_EmI${rdE6FnX`rlQ{(j z_Ksd*>IvM3Q;GOMjh+f6>P-&PueG}+t6_-u^^cAf^%VtbMlv?9!JZ0>mlM&D0Z9o$ zfi--d7_X8<)Pb(I+};qE`zf;h^-a{C?(G~%PS_+2tl=`}y426i#iXiqR z?|4T^dQ=C;#>98c;4b1m8uhiTHX|vvj2e$Zi|t7pNMd#3T2q4T?FU8f!>HAAE5lf| z9)-8)UKgJRKUu*->=g{iP&SeL4eX^c(SL0AvI013&5E1WTW9XHESy^`tWT4|9$68p zZj&d@Hv6$JH0Ek6+-A)g@IEuOec)+N!&CF5HJo8-ZWB(k!aL-B-6O^R6fIfT>GC89 z4oKl?+>MyShNwb@9|R7$qQb%|Y(`0Uy~uJMsMrS;e1of!JVNzz;ng>}kN0J$4ezRc zB%`bmUicfaTH%)Q z1SmyQGVucI1<%761RArCZeKz`t~-pcFwX*RY)vxY!f@wx6;L;%Qd)PF`-PTYcC*6p z)~Zq0BIA#9k)I6TycF}~UNGzYdl%lB(f~%&Ne)CVOO$gnCYQM?8{GiblKwetWsfcR z?XM`3ntfI!?oBGSAs7&Dswa(dKWQPMjM^>NDg$>bQaOXJtVTTZ z!?g{@ZCZhKBYC@=ipX1je75|=ZnH{il(*XH``toD=HXmb-n_n6pCYR5NNqUmCbXE9 zYP4tLvQv&xWCpT9KD{Hf!p_6D2=`3LbX98jAe#Xzw4gi)oHMKRe)F-^e;!VY$WQHg z>gMjmP&47D(>u@b-gS+3eA4N_J+=6f3irnCm)$WBWZ`?ldNPVoZo89w71W85u8-OvIClZt= zvVvba3s}cIC)+YiO&k4;$wHqJ{&)7|Bja5|5Pl|OF_VK93|1OB8LNqH;C2|3bn``v z3`qV~eku6^b^9WOSpKj7`~St3#%M>KICgnjWoEEc8VrD#*0bgIgn?b8yn`@P zdShdlC9x*=6<@+4$+GY!!j3kJ$e%W2cd>Z*#Wi=4Wn2!D8Pv-W_w9w+bJ*x9TiEM8 z$O0RbwkD(%ySbsfgo3+f6O7XKwQ}X_4a~gqHpIoy;a1#IDq5o|y|0B^{b}oSt)E4o zB+w&+1li;7m>$`~YvQzPdlm@uP1E$0Adi&AcgJ1f>cGd+o~g{J$T1>lWs-rsDNz|m{;2k(8?pTQD*n-lJ^S`p%g_YM*$+MD(dzVGY^aGKP z`8)peM$9nI5FbWdFaY(4f-0}#EY4H7Y;^}#K8+78Kg&as;Cb|8dPAm0eN6oEvpf+A ziAOw3fI{ZL@03ZL$GDiCv19sgeo($@)lQ;diyOA-2X}O6RUQ zDF%;9C!P@llUByrF{ONy%8*z&zaf%ZXQE;-Dhun=tZFRGUWawN8agnN#ti+RbKjSF|svOAB*4PAhVK$v!Rc>zA2x!#^p? z+SJ$P9Pi#Pv<5jo19nv_Jg#6_H$ny{W5g4RC(hY=2M)J!$PiuCL&c-YVXBa?j3jME zhmXmsN|VUQnm#YqWJTv0Q|tu~D%noeF+Vb)k+zSty=~xN`JfdL_(eCHL^Yhdb&UZX z;peQ(2o&3jbjs8U>G1K(V30oQ4%805t{A~5MWA+a>DxqnIT&iERWq^zxEN0@=G=20 z`7Q&Zx?FahBi$u$vI^7HX!8#jAJx2@yS2&uAdZ*Rk+XEx~JqbvmhaY7>zC zCxEr}mD&pxwJf4lnWYT`EUZZq-)@;Ud>R&Kd6KtH>Hx#sHJzU6u+Ey0%>Hge>ysZw zHjtH5w$p>!3ka(!DU@r|OXsMW2A9iJaU6w(u3cFuCK$4g5gsrA0ehV;M4B(V2rezE zTt7NXHR`v2F@}hbA>#DEF+_Z~cd&fG)W$hyWMX~l+hV>oZ(MKq?#;wK8nbt3%w7#7 z^k;E>0F}T`uJJ4jZ(~XXmT2`sw#c+AIMuOFYL3qKfi@b_8kwa*t#Dl!tKpW`*P*Jq zi&ZyvStO*P!N0-Y?5QXX{G?JUbhF!`PZ7~28;>o|7_`(?^4pP6U>_Z|_tnrc>+sgz z=zi^(8>$%hYP#>SqH!BQI_~p28`-W38n2<7Pu9&~UZ-a2!P_*s4+BB^LBoU2%#*f7 zHYvz=vt+JE*Ubt=Z_6Lzwmqt8$V3aH`XE#~MjQjvwfNvDW|ZZsx#J2GNtQ=FS?;q&kC-Ayt5AXLjYGz(_y(1 zq&m4rKdeg-F+e8Wa9GVb9gVj3cpkS1*gwQFYhwY$ji@Qi(vZ^3uO+iqo}>ZyM>dk) zc4%Ah_hOGH8J2ibs4B}yH6|b4oro4##E!$niG9(4kBOFV;wzC-TW5f~+Sz46qRp}T zi3IB7s~iZ&93DgCzWCV2n$Jh*=f2XjDFZQ+!@ERqxBGt~%5@9_0C=1ui(Gd*Nz^_` z+#wJvpy-(hQ(g+n<2``oZ8xx7z$+~hN9ZyGK4&b~H|`EJL_Z(7j#U;4delgU-MmJu zq*gVGhDLSi|}*N1?*UofbGV;qvL+a@vC@O$>X}38#>4?a`BZWi@(aWP z2Gb4EQ5kKzxVEO3fl;FOR>f)=n>!Y{I62gr4W%*-9g4H|+?xBhD_IL>07lKe)=C)N zqR@AB(nBhbPx7=Y0XLPsRop#K`1l7+g1N{pg&(|$qfW$M(tQNKN%-wpa&(a#VQb&v zNO*%xCRm9*jb2tw^p$s>qK>6+wOZpB! zB2mxxX1G)@gSGAe-!`qrIaa;2UU9D0CE5u4+#A6;G<%1A1CXfRk#EO@ZtY5TLFhhl zq-!l*Zx&^oAg?-6b(=PYBW9y7%Vv$qUdu zgX0r*2vE(@=84Akbm44Gu0m~TbDXV3T9`dun;fy#X<>u#%}>kau(?cK*mDIC+o(939f6ov5zK+y=}1gvU9R!DOhMJl79A9266nU+oW zzevM-%z>UpK3~DIGK#8Rg7+Y~uUglc->Zg;tWMa&*Cv5-w!_SyHZhSl4=+=pVHlwv zMk2iu>3s-v<@f|ijsA3vF+cQ`QlRubR?)53#3wMBt7O0gg^l55*Bnqp$uF9O$fhkk z>f0oVRwvq;+LN%!OF3Si5Q*_`;nkma31)?b}D6`aoq|u8q6jlIEK(W7G z0*u<`5Lp@bE?bk<$!O&j!qsH-Z`JZc%$ih(Fe9oEtIiiwxidnxHb(9G`cw6AVO6x$ zOH?Wn>@y@qMrM<$7Kg_!yuu{qh*@M0{O|hbYr zoL_n)boh-E+ySqNNZz_BqcE0}64cO^4+~ciP%93Qw{Tu;dz<_5w5H{Ghsd7IsCPjy zZiaW4W#|(oja3m$AzU8ZtW&)9FY-0>FY?`}364pOXJ)}S>VD2q@@K5<8~ZG5C2RLBO>UnFj+ z#qyBcyt=Pb3b0+dsf#$wIh0(+;MP*Dwsf^g&5UbG?^Lq~{mr{gv5U6Qy}~L0@85rO z@c#YRYtph9%4K#Sy-ZDl#IzuSr;P-LF&8igF2x+~Qy7cY0M%w9MUt-Yy;uC&v*%aR z63la}YExt*cE;BOtz+JqHTbnVj7Ip0N{GE#miEj6<)NCh5xEHoH&bE-p*CMxeV`}m zl&ljq%d4V^srVg4r80>u0G-xAH7 z0P$>`&w7QDMG*_(qj{9oO*VgK`rT;sn@C5gtW3*e3s5PQipQxpE(-!3)=%iPAXI5zb%6;z6(rf@c z#{%nd`0;fj*8uzg@Jop248E;R`^`BqM+0o)z+25mdL+eg%7Ufpiai3qHw+dnOl^CG zH|OY)z_zR%wf?3a6a`Rc3W~kkSM!K@& zHz(dU@qVR$l_^u?)8j+-ZD9O}*7XU}tpx(>B2m~##r8%40fUUPW5d=Aa!Azbv9F)#xzN_nW55ir95rRcB}EHL;c{s zsl{+7$nlmJ0bJY{@|JB86@hkqBPybZL%6J{;Rgus+0r^%-Jw9vyPZ?S4wZ=f-$Jr1 zpk2$b;$6I8?>Jg}Ie_Mf+H=hPIEEE?uE#fLX9oIg^u`>b#C{ffqIA3qIXXPfL)+sL zy^0f#+VNE7JFKas%D#m`z-8>%iNd&Q?oi$nLhIf5M5>mM(UoKaC$!o?_Q)BwGmMcHH$@I-Yo&VpV1 zTPs@Wc1hied=2b{HIc&`$Yo#Lzq--UlD@4aohBI6)Z0}a9uR9r8~-j2{xh}lSMlvf zVJIXg6vEZX+^7Xw9z*H8T;DcUMl+ymhFuf+bj8>y;{qJE{U(;`OBmlLEZTEPTMW63 zs&>tX5Y85alAGjX^H|UdwRB<}R+CFRmVrc};jNb&r?Cs&%1sz}IE)FChA{d_lnAll zup`CKOG9c02X|MI?D$o3FJ6m}IlLFIk>_=Y6s`0ojKZ91<{|!lK&8_H1K_n9SK&et zBPRGIf}SacF5~kC4F}n@ZxF+#Dok)qbchNYq-(4L2h$?f+kNa^G!iDOqR7Kt0@TSp zv+OP@q5$azA9Ju{kHyuocyui?pi@q1u zmYOE9sx!kwa_^^%uht~BjfT9QsZ~d+Xe|TA@nUGW;sdPS<7LT#NZ4NildyW`xm2Vuu9vzlSXLUIE>m)wH zR!(?y8vti{A*q4ME~Lupo_7#1U1eaq37B3n?{ERrb)>)$(!1xAxzhU3XJCm#D>!Nm z>pX47Ia!>L9xt@B4X7bhk7TsG@4w}}vjKKMv>8qBdwufjm$vVw_ZoZ~!|PWAXAG|& zW1xpYsxiENM6E%DhYjKNc3`yQF*JM1?U>SbjQXZP>)O32pKlpsy=4^)qa*axCoANP z6%H;xGe%MGSa6}B=4HKx`({>#6Ra_!Rtme$6cIkFlIeV?69yzT^Ej$JsksV2y#WHlILO zDWRkc@;30h2lC7gcUye~mj6`zS@mnr*FhWkF%!)r(|#>;x;EUjR}y7$kwEd@87C%b zBrJMy#AVnL?;%Ms%SIY31`XC;4T+McUnNC4T_0()0y2tgf_O=!dp3Z2lmjjRH`W<21Xs}-gp3!7K+Es@_tI=pbBG*7d1nb8K@4p_l z!U@@P2Ct1%SL-CD4R)!|kV=mRo>D5yp6XgAy2xqXwVcV5spMfH%9;am)#TsbfBi={ ztWx|OPv z=)+Pz92f(wwanCGfsO!*q3%b5E8F=z07?l|WY!W!)2M4p9B%tfxz$c)+O9>K&<(ktG1&%FStq^T@6Q7k+90CR*xdZYRwWYtU`Cn>+`B zx`7BPg-$c-2k;(4sKm!GYwCvFBpyBhSFvZ=Sny}{lB`CoGAVHA%0DJ#P465ln)=r! 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%0AwQ^}{Ry@5 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⁣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 + + + System.IO + + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/net40/System.Runtime.dll b/packages/Microsoft.Bcl.1.1.10/lib/net40/System.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..118fcce204348879c199c5ebba06751972f7f298 GIT binary patch literal 22176 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/net40/System.Runtime.xml b/packages/Microsoft.Bcl.1.1.10/lib/net40/System.Runtime.xml new file mode 100644 index 000000000..93cb00d74 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/net40/System.Runtime.xml @@ -0,0 +1,56 @@ + + + + System.Runtime + + + +

Defines a provider for progress updates. + The type of progress update value. + + + Reports a progress update. + The value of the updated progress. + + + Identities the async state machine type for this method. + + + Identities the state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + Gets the type that implements the state machine. + + + Initializes the attribute. + The type that implements the state machine. + + + + Allows you to obtain the method or property name of the caller to the method. + + + + + Allows you to obtain the line number in the source file at which the method is called. + + + + + Allows you to obtain the full path of the source file that contains the caller. + This is the file path at the time of compile. + + + + Identities the iterator state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/net40/System.Threading.Tasks.dll b/packages/Microsoft.Bcl.1.1.10/lib/net40/System.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..a60ab265715dca3e129eaf80adcca908b900ddc7 GIT binary patch literal 35016 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/net40/System.Threading.Tasks.xml b/packages/Microsoft.Bcl.1.1.10/lib/net40/System.Threading.Tasks.xml new file mode 100644 index 000000000..b47921e5d --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/net40/System.Threading.Tasks.xml @@ -0,0 +1,475 @@ + + + + System.Threading.Tasks + + + + Holds state related to the builder's IAsyncStateMachine. + This is a mutable struct. Be very delicate with it. + + + A reference to the heap-allocated state machine object associated with this builder. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument is null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + + Gets the Action to use with an awaiter's OnCompleted or UnsafeOnCompleted method. + On first invocation, the supplied state machine will be boxed. + + Specifies the type of the method builder used. + Specifies the type of the state machine used. + The builder. + The state machine. + An Action to provide to the awaiter. + + + Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext. + + + The context with which to run MoveNext. + + + The state machine whose MoveNext method should be invoked. + + + Initializes the runner. + The context with which to run MoveNext. + + + Invokes MoveNext under the provided context. + + + Cached delegate used with ExecutionContext.Run. + + + Invokes the MoveNext method on the supplied IAsyncStateMachine. + The IAsyncStateMachine machine instance. + + + Provides a base class used to cache tasks of a specific return type. + Specifies the type of results the cached tasks return. + + + + A singleton cache for this result type. + This may be null if there are no cached tasks for this TResult. + + + + Creates a non-disposable task. + The result for the task. + The cacheable task. + + + Creates a cache. + A task cache for this result type. + + + Gets a cached task if one exists. + The result for which we want a cached task. + A cached task if one exists; otherwise, null. + + + Provides a cache for Boolean tasks. + + + A true task. + + + A false task. + + + Gets a cached task for the Boolean result. + true or false + A cached task for the Boolean result. + + + Provides a cache for zero Int32 tasks. + + + The minimum value, inclusive, for which we want a cached task. + + + The maximum value, exclusive, for which we want a cached task. + + + The cache of Task{Int32}. + + + Creates an array of cached tasks for the values in the range [INCLUSIVE_MIN,EXCLUSIVE_MAX). + + + Gets a cached task for the zero Int32 result. + The integer value + A cached task for the Int32 result or null if not cached. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + Represents an asynchronous method builder. + + + A cached VoidTaskResult task used for builders that complete synchronously. + + + The generic builder object to which this non-generic instance delegates. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state. + + The builder is not initialized. + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + + Gets the for this builder. + The representing the builder's asynchronous operation. + The builder is not initialized. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder{TResult} is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + A cached task for default(TResult). + + + State related to the IAsyncStateMachine. + + + The lazily-initialized task. + Must be named m_task for debugger step-over to work correctly. + + + The lazily-initialized task completion source. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state with the specified result. + + The result to use to complete the task. + The task has already completed. + + + + Completes the builder by using either the supplied completed task, or by completing + the builder's previously accessed task using default(TResult). + + A task already completed with the value default(TResult). + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + This should only be invoked from within an asynchronous method, + and only by the debugger. + + + + + Gets a task for the specified result. This will either + be a cached or new task, never null. + + The result for which we need a task. + The completed task containing the result. + + + Gets the lazily-initialized TaskCompletionSource. + + + Gets the for this builder. + The representing the builder's asynchronous operation. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + + Provides a builder for asynchronous methods that return void. + This type is intended for compiler use only. + + + + The synchronization context associated with this operation. + + + State related to the IAsyncStateMachine. + + + An object used by the debugger to uniquely identify this builder. Lazily initialized. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Registers with UnobservedTaskException to suppress exception crashing. + + + Non-zero if PreventUnobservedTaskExceptions has already been invoked. + + + Initializes a new . + The initialized . + + + Initializes the . + The synchronizationContext associated with this operation. This may be null. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument was null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + Completes the method builder successfully. + + + Faults the method builder with an exception. + The exception that is the cause of this fault. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + + + Notifies the current synchronization context that the operation completed. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger and only in a single-threaded manner. + + + + + Represents state machines generated for asynchronous methods. + This type is intended for compiler use only. + + + + Moves the state machine to its next state. + + + Configures the state machine with a heap-allocated replica. + The heap-allocated replica. + + + + Represents an awaiter used to schedule continuations when an await operation completes. + + + + + Represents an operation that will schedule continuations when the operation completes. + + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + Unlike OnCompleted, UnsafeOnCompleted need not propagate ExecutionContext information. + + + Used with Task(of void) + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/net40/ensureRedirect.xml b/packages/Microsoft.Bcl.1.1.10/lib/net40/ensureRedirect.xml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/net45/_._ b/packages/Microsoft.Bcl.1.1.10/lib/net45/_._ new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.IO.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.IO.dll new file mode 100644 index 0000000000000000000000000000000000000000..32dd41b780e3abf07d8bcbf35ba532ffc8d4618c GIT binary patch literal 22672 zcmeHv2|SeF_wX}|eJ7H2?E84ePRK615D958m@uO;*2*$U^i7l~Nl_G$B`r#lw9$g3 zw2Br~N{dR8_da87`F?-j|NH)b|L^;IKkrj>o_o*T&pr2?bI-jGrE*ok^uyG>GKd6*Xm73R^Y8@%fA5F{~^_IKVm2x6a?j~&F9&Wq#eq&PZ=TOoY|Y0R;Le$Rh!pmjVgiWUfv z%)Xg{05Z@8;5Y9v1HH%7Na0kF5$P+^XM_fjDEQ5L%pk~OUX&TcA#?=~(l<230>#OK z%0ML?Oe_S2%0Lhg3W8j55R^QP`>WS`my>ToM1`aRKizr%tvH(SbkU_qxxPEYD?DCZ zpxhkjA2{#J=dd?xpZtwZ<5hy&Pi&LVXFn7CtnSH7>9%QDVWC2F6zqVNeJaa;S}AjDP*Y5{mg~D0J+Gb^ zN}-hjbvRXpU^Ju+ItscjkO%;FfwC~btK(=O64?Q$gH{#+2dIa!mDe9X+M zVu>IJR#gg}%zS$)gBL4J8Wd$FP#1v$s#<7e7Jyb3MlqZX{w5iKdQ=hzg|A!pQ;ZI8PES zicF=L=-^@GpE}MmI-DL&BbiW0(R3OyTpi~c9S}|qbRflhP{T+RlK_2vqHdtB9>Gvs zhXflK%Kh3{G=)x%AkDPyPNIVWBE(`ouI5(Ae_i{sP9**u{N!yR5<~$%8bpQyAv+L` zfrwBzhy_7bAVdd0!^uIoAR?WJiwz}*lW;+#Kxz<~5(1VIWZ`aa zftqd*;n^5uaN4jo!4Rp01yl?{=P?i@mk2@XfaiO_PtKiA1I43|99Y1h2+ztbcZVE7 z7+FSgw#)6Tz}pwZpMmknS%gyqKpc5M6y+s+0ENs0^i@F{0+Wvfao`84M$(x)kBA#E zX%JuwW;&7wbc2}(2_yNCH<;JyH!HLb)WQlem~bl-9)|J&rUz;PFb5TnVudPEt3mh* z6Fy2oCWgX+nBsIy5v2$yYs`$LF>66XcC#@9kmfcUGXbsp&c>`jPm%twKp}9| zEJQ=W%y2Y-Xpl;PK0*eNArqQ2p&b)0V?u8xBr+kH3D+`VJQJocVFnX!XTp2{?V)l2 zU7=b41)@sSDESdG zfyMw_i&_MrAfy6yL7^x-XvqnUz+eDVp%wtSpdA1&1ib}N9FhkZIcN!hYD{PkZ3f}R zP$7VpP$hs4Oz6(U_%Op^&@q6IV%EP7I)k=^av%egCG-dM8I&miVLN8)sn9DZ4&{kL z1L{K1VF(dsCMcjZA#0Qlpe!292J%Dr1q&deL)ai}GBO)1pr6Paf|dgwnp!)^Y#}HV z5G2Th2ERER4nZ*=q*N2KFpA4W+ChA#30okLfK*H%GFzDz<93u_>TKp|9E1;~Q)y5LiSGY% zwFqt|SJb>Pg1046NHlWbJW4<_S$~rR1aveBiXcTrf&M~d3Me}_&@fW`Ot0Ohlm&iT z4*?Mjc@Sx!JsV)=kz%Q|usN#CP}!0i8BZgJgwlVP6cI_J#Q&OL1C+#c8^0zZRH8*N z2}cb7(_DX=;6bK`lYXt$iWC({BQsg$*F;MyC72u%O=C9tYqBd1aAn|c2IxTp8a#sd zTe3`P?zzgGr&RdNBu6f-I50P0 zt&pOAo;pivL?oat&7DMxAp>gznnEx~=0*x9#xX-tbFEI#Ig$+|1(3tZ^m#Kj-6u=X zlod4sKT|uzWHKV16ojPARW{W(63v-PSsq2A{g^mYc(&|ZIj|y0G!i9{WW6?;7#;7F6sr9?_lI0>{$M`AWKYQ!{Vh6|YsXf^`!O^J*d>L5*1DI^LVp;-8^16hp%IIwxcvLiSEgfZ-hsenT9vf|JvUO^5PWC+>` zBr+=^w?W*^-JF2fMu@S%*7?=zV%5EogZPa{_^Kv&h6X3ryw2J@j)@6Rb!LEK#k=Dr%j;)@GUrR*4!#TWb>z-z zuE}XCW6mxo zya$yU9)$XCWiw{n{C>x27^PC4p3oe2?N15g9+f?45eMUILLC&oJiS-SwK1UFL)&OJH+ zXaF4)q; zeF;bgVUS^3-XLSfdeDHjfp}36$Mh`Oxd3t_G>6y#B}o*pV@6GHnxzm@dZ0zTXv9b$ zHD=Y4M<}v7nPtG9K<~K+QX1h!34pr|#&sKP1l-)M+?7z!&Uc^>H`aeTIBsMh*e>DyrCe2+z9aK1L$N3mYG)$yMW3wvBd2t z-|efqURep1da;cByRJnH;RKk0ZGah=gGCrL3XK**eD*7cH9tPX_VJg#HdiP0j5(a1b&zoL9z+4xsie*sFWar6fA*Y zIE8+1_7Y@ZX(SyZBsymndjJ=?2H5RIMB-d6&0(p9JOmwBS4*3qPtYdlt^`qC*kCpa zr&RpdGlX!=o}s*M5;9*Wxq116}v&)UZxF1fElmbR~Y zbDm-GiV-!m%w3@AQH3P+7^iC-SL$1F_B!zpY8T6fVvhY6V$+Kbu4s0d4EgZ*^_5ZW zhg+<9^K2F=UIKb_r_^7;AGT6 z28shvgawuaB$edFieML<3weS^i&t~fc#I^IwibrT1`B*<@{Xh&RumRVULdFQ<(`{O zB~y+Ym0SW);$<>L$O_BogvVf`h?^2PjYt=>IkNWWNm{17?6 z89%gH?j`#z@{54pweMcZHOY|1O1v)SXgm;!6Fy>k;Mt~c3(uW*5q@xFr0k4bWQRA!ZDe)x)KJBm4dFLXV0)8r=Y!4b{e346n{WHy```!3|_wmR3y=k$tFa2Qa& z^T|;~XUF1Qk#&3K!j|w`wzj*Wt8X5>{mV}k=NxTx!`LKQ1MCZ%tUS0Ui>v*m5zVgcDPL4^A zo-IOLG4I&MuG?0Qr+2%RN-2Le(P(eqxI1kvNuYgGD~DBDA9bMiTcw#*Y55;=OBi;A z-Fe=wLf)cLla|~^)ov%jW+5|zX*Hmf@9!2WW}dW?Ue)jCn(3K#&fd5kJ9v2WiEB-% z@G@j^3t)k~D6xU92tUn_HcUWRiA6{iC^f)=$Jy?uV*P5kp95}UBan+p-C&L%F9`X0X zh^k5|C9(}&B1xZU=Q-tZMcH6w`oOy8MJGMA&h%fumh+&R!sll-db{SWc(-$NHSb$o z!TY}NN`8ZvCW)UG-BRY1E$qD!$=D}K>yf*jplrb+ocV;QQ7Ld(!(E@ zu<9PZ;GRYjh~>!A^*-H`RtA0lLfD}GaVtyV`R49eTKJHYw_@tM3&+yEa&)2fu4-q! zzkQcbF<^8(cH3pGBI=yyQ+UQ-{NOt!*OzR$gAqDB23`;Km34EC4EEk0UbD%MS5{!v zI+($77RbAjDS5|9)K&x+WxzxDiCC~d(=g-Y*rAw_^Ikm&wMYa5lpA3YVlU1^a?I*J zf(EQMCBo$AM3@^D+#s?9x{4f34g@|roOv`olu84K5lm|gh7Gg{KzdF`BpUA~>i?a?ffU<g?J=|3M4)yxAcQ3=f?-JpE(rZLd6+5L_r1g68 z@dXQKxo#TtK-Y^iqpb>O_i-e&(#avSv@zacZGkP@{RxHM!szt&BT-gKcT*mGXne0% z(&}sdu==RU6XnodVuwp?tC_(yOUOQC&phY);e{Qfk;P`56hVlx6IOGWX=1F zxW4b8tMtccdOTVHdw;o=88C6J)!&BTdRj^7nHk(pQ{h*Zy`t}IQlw>)eWTcbb(62N zCqr44MeCHqU6;UtTN(lHtW5?g*`ZH1#rryawko<0CLFPUZ_}=CY_RWmtZ(VUeVNw; zvOJBOD>?izT{9AF6_8*nVLn7M2%%7uSQZ!qUh|~aZzTz06-)AAv0%fH1`D!sOz%g8 zQCJpc#lZZX#i0?4ZK9Ll+@-iBw{Q3A#bpHQA>*?>8t|goObgIhZYfT%>yHMzb4$ql z2U*5j$yjaXskH04g3veBK2G;s?`I{j>y#|BgKc5!BFiH4v?YIEmd)}z4X}0~;B2N8 z^O%uZK#DDefl!`_11V_{wlxFD9GE;G)d8>`W4lzR_nx?SG<~( zGP}>O{G*2*7i-+LJj(U`+K>j}pxpKKuDg?E{3=Z}9nTyn^W6J1vZ4O?m-rKQw9lq5 z&6C>txEGSImF~r9eC2Yz=y^lqsr{|9kppEs2Qa0cPwKZgc)icH*!%9o+c!_sq;-tz zJ@<^b%WYCEVMyfk?_`sF-|zfoYjNA4Q0aE(tKzq^Xt}CuBMQX6NQ}7O3Arvi=_`5T zz}7~kWATBWRtJ{d7#ljc!t+r9+S*Ff|Kt6t+YBwrw~}0;XRpWu&#q+ceG{)v=Oz!!Ilb`90G0k-541 z3dfsGyjxu&c!iuz)~hVtOY8g)-q!p&@}SoauMImhi^P{=R(@_j7{W;})f?8(TzK^b zO<(XMwbnR(=(+nU)^AXCNTyLaS3Ra$5&_Zp3cm@r5(@92Axb)Q61lWMftnn`j&UO#^s|8ad+_B$;mFoTs1$nUo^@>?Vn z@za9ylYc^f!}_oexbmf?s|_0>@|(bnf?Hr9`p<3i|CRLKUmRZB`(Wt~)%9WcMSYF^ zPcP*!lXE?K^O2~tJl~tn!<~*t=`c><65?x8oDUW^%el8@ezk7r=vYHh87VG?(RW+|MxT<7=|BVanzY-f-d9#5=p{24!|7ez_&|f&G+wgxhiJ z?EOn2d)r_EC6(Z^UC+8$Q|u3nZ9FVsyMTkSf8+4-xbLVvlCJEVAb!|p_|#)Ln}&-T z9{a1M;>-!L*9&?Vr{)wB(I+H%YQKFhIEK0@>)D$2B9pD}eMq{8!TZw;SOf zq&NSp5C+m4$a4rz*^S6nIc!QcoRXQm;CJG;IIx8HZ#OR({P9OcitUR^k2*%J_{b)N zC;i7r{lB$!2ejtjwWY-uW2N_K==jmt2RGxFIiYIt^tC<_+(H#M&#lX<$KMt_ur(r} z-V1%r87JhL|0uz%->ac|#U6=1NmN>8L)`m6I$keEz3D%f#mRCtb7}vGyYM5IiXG1e zGS_q`H^12Vo>g-bW@x*rylmw7r*F^V^6@;M+4>{TiaHl=3*)5a))yP@4bix?jQ3@L z?-G&Sf8dt%vx#YqT_@Pb5KPo)TvuO4noMru6zaXeN!&Jaw|?O(=RcAz>8h>f2f9lWAWLvvtkQ`+@qo`Z#vJHsmt9dCb% zZ#p8H5TNq*K!J)5Yphs6tBF*EG-HJ8ih4u4W!>|!*BeeeEh(ex);nKXD<`NJ!)5HY zb?r(U%LQla>S~-quI{&(OpcdH-X{zP4_XMW61%!jR;I&pNNuR$G}51%=fQslE$p{eNY#x|KducTaB_q?%t@)<>@cYp1x(Lw)=jh!o@@$zU;zusl^+wZ3mmi zxhl8`#;{S5M6%d#&Vi=S!ivR`MgPnwo3BTKPZi5RK{14YJlmuIDO-NZW+{nPCFmM8 zX(#y`H{>NElJB0azbY7G(y(H4rnpOV`jQEAhvj2FK1;PbuSoZmtT}%B^PV$KikoF$ z%4U&51DY;3(g^Mr8MM@G1WOx>ZypNbiZvM>WJKQ|Ms1O{3d zpaht_x9uO(^}j!Fn8$g3u;^T`F$AvJ2pbCU-7IIZ5crsf0bnNz{1SSw?#f^I?tX)- zf7Z7%8)~{7uV#PS@^xL-3$OXS0vxIcuLS9TeAnmp$dLLyi<>thTSQ!H*LlaV1xwU@ z;0OC2m3Z#HG8Ub4>1KAqDOGO11ve_cb14+b_=OBdJTMhb9CC0ipSa)O#G#?uBB5u# z4r6=GqVISpJU&5sx3McttRno(Dv4W1HeVHbJEC%6-H6VTS0ft+w^*<$uCL`jMv&Y& zxo@YS?>)Xj*~d?n4wIb(&!stHGDkM8>8WKT<#sPo9^*QBgeWLCE}NCRfBSi#;XI8) zB^+6en=mU@rK7XEn^SZ=WITwxTp2yqDg>G>4XWihWT7H9hAx>}pp*d>p5^=jX^ z$MFT)-$IvVly2*(wb7P(XZWOu!LtJx(EPxF{xZ+uYmg}yA)<6p@d?wCHkd!FT%b#d z{}!jJGOP$JC2(FPJ?Aa?+2M-=UNXYeu@wOZK?4GTpoe&U^#GU7ME^s)z84lJ+Vw*;a-Y-dHTmd zo0ko^R+MJXHtu`(hM(w-2ZcI)v(Vg*D`(%MY;RjO^8Mbigo&O(1Jv0R>k6YmG1W(g zsY}=%^z>zYGgQ~xhuZ%(H1=v7)$|K)GEa>E+`A(k#C>IZHa3}7Rkv|^KhOMQ%C!NG zqmqEty>7}yp@5t>%{U4$m|4zuWJk^Op=xC%7yG#adK3BENZgg?5TF1=#2 zE_!#=Sj*Md>HJ)uRW*d-1hc+}mF-?7VRzH$kWOB}gEudpa^DjVyz*6)`1&-&Uh(Yu zdco3@hZ;$%c_p>I4SGfTw0sjg)(Ntu98at-_j_P98SJ>vOtIYYyK}~pyw31TJyq8f zgZr9DPd_&Vel3eo0eU-B4#FMjK{t!rC z70cf6bW24NmBUo6GNjpd_*j`=f^iMY=;|%qHY1+C?+>fh-~~jg`?uffRX+NnJ9o*K z`q8jS^uXx{H_lGfnVnx-WmCA7^6V3f-|IJ!QtDNkbuTU$^}Us7_*|@S^E|C$S5B$h z{+fGBkH!>g4xJ0vTOroHiIdrB9m%;|zZ_ngmZ1p;uu7-+$|hEwhrJ!X^uBhi0cYcbHj zUQa+H*Avj-dIDH;6(e71{1W)1J(MF1ekYwX?@z9f*>54P8aA}j^+-Ldff&~AOi~NC z)Fb_{%Yr>zBL)}pS!=EucB2*$EV?py;)6CP?p!S&UcJw5?@;KfTfGJD$2iqns_&Jn zRV8p#-_7%GTP?;i6dW_C<)$d8IZ(mw+FoaM%CF}l9ur*=`r%r{2P5BNk&iZKo)`pG zQi62j4iyFRX>^(8e0lnqji=i;zSK@-fahG1Q0%##CU3`|s;%UgcJfp{kU)DPXmrYM zRnPFS<@VHj>yE8U6TfF#yVY+n!)2q``(jP+XW5H2s}VoZlNVSp$*9QHreD~dV4{_ z>p^PfYbQJSaK*OX*FO8Jzdfo6?r+|evTpd!u)~0z%3&epLx(qnB)`}a5a)kPbK_mF zy}nJc%F6GCBU+TR)U(X=U7GtgS!G=0aJ+Q8)KZh4`p)MY|GONSe*M_9=<~8l*`Zo2a+IzG!|$g*rmv+$RW+{?;j3;~ra3f9MEkFrLzH(AH82X?VIhMLq2dE0qwt~h2-s}40yL~6rG=B6cbn9o zc{>*Qpg0iRkn{)lC6P~xr@oCrK0T&Gc%0-<0+p$KL*A#A?tbDCFNW{xp@+y8aODZ~ z1@6eV$lGu$o;$ml%BH7g ze!QlLwo$#Xg} zTZ%%}^J=Bxjz=GOtMiq2?RMfd;d;-WaYwpEOSFIFlEzJ+eaGz#IWKcwxO}wg`LTNs zgwvNo@F{wW84K$nl&Z2RV~LPcFxUAyr_sKw zBnhhU2J6Ey&&^ax2V4By0@7L}1NC;L_1^#R<-JJp9;Ln;rMo)b_yw9j^bG_zQc$MEgCTYIj^{Lo5uLrtQY}4rdVOJ@K!&3hIWa$n_ zaXAac*T|clDxS38$674+}7J09TB+Qq_fb|*`+DjOSU*pKuad!tvP4ylJT=YEJ)M_YpSNf&i1Fb}UK%zLzrVRLB4SOeTa*w_g6jL$5(h4pua?bdr7GVj%_l^4B_i<^??v6RI1X(O@PkVT`RaX73P@3bn zD!(p~o37*?E_%Z!wc;h}`<*vk_&58zP6pCgjGou7Ki%y0&7#o%0j5tcExYTC90`|`D2idNld$YG9EaJke+)E)xO{6#9*wIK^R#ZJI zx3||wdHtL2DA@6kfrh2gvP0#D(vImxonBO&d(FZ_r2(Va_RmJRGCD5lm*x#IO6*3v zEItUS9nhZF*>t~TM8#I8@88zZ!Xlg? zG;x~!(f3;6bCYJqJ5{Xr$y~uo2z|BUG%dyzGlaBYh7f*sLx#ZsKZcMLz=_Sy6ynDa z;sPi(Gz#;pAA^C?W#yV-5PsmwV4&oIe+UP(odn>O>8dw+b7D|nFaM(x1bnr&=fZnU zeVGzZQMhJ{Q_M}3L#pD3r1swGd~YT`*xnh0X7y-RS{z*<3OdUCqHEf1g*Vgzt}D)$6k++Pjf3Re#^J|H&&Xy0 z22A&>F+TsUaJeMU*;s)sM!47Cgm#U7O(O3MqkHgomvTakP2zHK5jSB39aD#4Eb8af^kM*|JW)y{x7oNu$B%F?m*rZ#x_& zD9`t_)t0?aP~{|y+;?W(elne1cQ8((W+?xL@qnh)nZq9+1~rzTnsFRCaW}r5J>P2O zw@PF$ip53NY34{2xGGWoe`$<%gO3om5VAj5u3K*-en~rY<)(<`e{~n-?;E4tpFFQ+ z4Ic0f2<jG=QdKy~VOhfd);nv-s)D4W#BBl|FTnI|Z zg;RFGDOo?*p((J*tQmgr%OWrSL~x@!iJf{Ea3+`nOkx`MBQ=B!ZUo9w@3 zg|fX!U&hma`N{4jDQht%g$IjesCBOnT^}W!YiH>%|Nhl0Vi8<-;Zktxn%>cYk+{Yy zW&0GKj-4G2^YCIw96#;8_4>!vf?Hy)o0*vxJoH^S={vS+q3&*ZPY3#23;wIs zO-YxN-s^8zxkTc9e!Ts5H>lcxZ{etBd5ar-c)G%w3r zVS#IVdU$R3Bwy;dak%5{hSZV1#cMfw z{ph=8*@^dST&1Xu@A{zL0Rme|j?rh5ZQS6OvZWQDAJYk$=y^>KC7I7xE1mBv z*VmRm$UAn};y`QrB6FuFX=AE;4hjUrT@7?Chu*+-qxoAj#jnUzd!ML!Xl1<1b?x2a zTbGtUB|r9R?tBcNpSb?QX`H9Y&t<4kYLS8F+4dDI__sVouDbW%awti3*Cpyov7foG z_n^x^>oGmuP7o-ZTi{&a%)D~}m!pFoxvt7PLzvDWm!GxIKP%GbeawQ~n?z0praxw3 zM*p+4{=ZaE#mjfZW?#@)h8HF#@8MpaXC%K#f19${F}*iID!v)q?VXRbKRSFXSa8yX zx<7g}$UAq7dF<}projmYwK`v{4{a3a(k(9i;JR+p`L|LE@2ZTyd^djl`tzF>Emltr zVhOfz#AUZ?+C=cH(JQv2ENeff#OaiJi_rH>^r=4P@6`BuB;ByYT08F4Yvb4$!c*7W zcBvdz_JnY!l7jt;&o?%W?<3$9UlJd^xd=)>Ek`q#tT*Wt<>ZK}H>qD@y_#Wz( zj5DZrceB3c61A_+4)&?JNnLXAr6DEb-SP~a`Z6Khn$%EXi+!z|^7r1%N-Y0kzU0e)kT+4~xXj)H$6NUcYGFivQvM<8SrV|KVM3 zU}1o-SdhEiQ(6W1@(KT4TIEmb{@IEDukOe&J^LsWM5J(yiNIeD8}xb#6el{J63aL% zyH9?@f2vY4U6-K6EXw7XI6gV!zVUiL8JH<51I{e;S(Ahj0P(0J8PCtjX<((vL^BuYI= zNl4yLW6jv25sFIq!P{%_S2vETXDSe23T>s`!1AF zeAsiP2TG4&U$c~EH#;{OrFq?bi)|L;F};Bce}tB_-I|}iFl2{_v(C%F(J#xB4+jQ& zD~?=}we`X|lm#1I(-`@5Jgqgcq-o9YaNN<@g7Tu4M=4Qj;uUo|J=#aUZa+05cVRJx zvx$8ywMp8v3mtV@^lS^`E7V@$-uK|NzKcBdQ`w_DuER^kZMwxC(r=>W&JUR7%6cjD z78N{Qk(WJrV9k{m0c!>h*cCJ^?(^ZjJfyto#GV66BE#qnEd1Ih+~c-?{8Xx^dhVPa zyXR*gnW2%`23EWq-=Y3{_e(<#>x*ws9Wvu37hfbab~*c-jCCedNww;8!t&5%KX5Z< z6s)*+%oUgO&+hxCd|AISW9Iv^7$_}x&aDA%XYu^txPX6lPA#|J>v%B>e%{zlv{2)6 zV@OI>c6IT5zOHkkKy9o$f6f%WT|1`XO7ydmlI)tbj>oT@ rz5h85#XoEwx7zT&u67~RXrIN6RZCvib^UU5>Gl{(`|}#6kqrGWMmr@g literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.IO.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.IO.xml new file mode 100644 index 000000000..e83273427 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.IO.xml @@ -0,0 +1,51 @@ + + + + System.IO + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Found invalid data while decoding.. + + + + + The exception that is thrown when a data stream is in an invalid format. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.Runtime.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..18e255b25f01e4fd9e10d8ce7aaaa43ac1a2db50 GIT binary patch literal 39080 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 + + + System.Runtime + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Argument must be of type {0}.. + + + + + Looks up a localized string similar to The last element of an eight element tuple must be a Tuple.. + + + + + Defines methods to support the comparison of objects for structural equality. + + + + + Determines whether an object is structurally equal to the current instance. + + The object to compare with the current instance. + An object that determines whether the current instance and other are equal. + true if the two objects are equal; otherwise, false. + + + + Returns a hash code for the current instance. + + An object that computes the hash code of the current object. + The hash code for the current instance. + + + + Supports the structural comparison of collection objects. + + + + + Determines whether the current collection object precedes, occurs in the same position as, or follows another object in the sort order. + + The object to compare with the current instance. + An object that compares members of the current collection object with the corresponding members of other. + An integer that indicates the relationship of the current collection object to other. + + This instance and other are not the same type. + + + + + Encapsulates a method that has five parameters and returns a value of the type specified by the TResult parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + Defines a provider for progress updates. + The type of progress update value. + + + Reports a progress update. + The value of the updated progress. + + + Identities the async state machine type for this method. + + + Identities the state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + Gets the type that implements the state machine. + + + Initializes the attribute. + The type that implements the state machine. + + + + Allows you to obtain the method or property name of the caller to the method. + + + + + Allows you to obtain the line number in the source file at which the method is called. + + + + + Allows you to obtain the full path of the source file that contains the caller. + This is the file path at the time of compile. + + + + Identities the iterator state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + + Helper so we can call some tuple methods recursively without knowing the underlying types. + + + + + Provides static methods for creating tuple objects. + + + + + Creates a new 1-tuple, or singleton. + + The type of the only component of the tuple. + The value of the only component of the tuple. + A tuple whose value is (item1). + + + + Creates a new 3-tuple, or pair. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + An 2-tuple (pair) whose value is (item1, item2). + + + + Creates a new 3-tuple, or triple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + An 3-tuple (triple) whose value is (item1, item2, item3). + + + + Creates a new 4-tuple, or quadruple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + An 4-tuple (quadruple) whose value is (item1, item2, item3, item4). + + + + Creates a new 5-tuple, or quintuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + An 5-tuple (quintuple) whose value is (item1, item2, item3, item4, item5). + + + + Creates a new 6-tuple, or sextuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + An 6-tuple (sextuple) whose value is (item1, item2, item3, item4, item5, item6). + + + + Creates a new 7-tuple, or septuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + The type of the seventh component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + The value of the seventh component of the tuple. + An 7-tuple (septuple) whose value is (item1, item2, item3, item4, item5, item6, item7). + + + + Creates a new 8-tuple, or octuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + The type of the seventh component of the tuple. + The type of the eighth component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + The value of the seventh component of the tuple. + The value of the eighth component of the tuple. + An 8-tuple (octuple) whose value is (item1, item2, item3, item4, item5, item6, item7, item8). + + + + Represents a 1-tuple, or singleton. + + The type of the tuple's only component. + + + + Initializes a new instance of the class. + + The value of the current tuple object's single component. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the tuple object's single component. + + + The value of the current tuple object's single component. + + + + + Represents an 2-tuple, or pair. + + The type of the first component of the tuple. + The type of the second component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Represents an 3-tuple, or triple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Represents an 4-tuple, or quadruple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Gets the value of the current tuple object's fourth component. + + + The value of the current tuple object's fourth component. + + + + + Represents an 5-tuple, or quintuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Gets the value of the current tuple object's fourth component. + + + The value of the current tuple object's fourth component. + + + + + Gets the value of the current tuple object's fifth component. + + + The value of the current tuple object's fifth component. + + + + + Represents an 6-tuple, or sextuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Gets the value of the current tuple object's fourth component. + + + The value of the current tuple object's fourth component. + + + + + Gets the value of the current tuple object's fifth component. + + + The value of the current tuple object's fifth component. + + + + + Gets the value of the current tuple object's sixth component. + + + The value of the current tuple object's sixth component. + + + + + Represents an 7-tuple, or septuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + The type of the seventh component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + The value of the seventh component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Gets the value of the current tuple object's fourth component. + + + The value of the current tuple object's fourth component. + + + + + Gets the value of the current tuple object's fifth component. + + + The value of the current tuple object's fifth component. + + + + + Gets the value of the current tuple object's sixth component. + + + The value of the current tuple object's sixth component. + + + + + Gets the value of the current tuple object's seventh component. + + + The value of the current tuple object's seventh component. + + + + + Represents an n-tuple, where n is 8 or greater. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + The type of the seventh component of the tuple. + Any generic Tuple object that defines the types of the tuple's remaining components. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + The value of the seventh component of the tuple. + Any generic Tuple object that contains the values of the tuple's remaining components. + + rest is not a generic Tuple object. + + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Gets the value of the current tuple object's fourth component. + + + The value of the current tuple object's fourth component. + + + + + Gets the value of the current tuple object's fifth component. + + + The value of the current tuple object's fifth component. + + + + + Gets the value of the current tuple object's sixth component. + + + The value of the current tuple object's sixth component. + + + + + Gets the value of the current tuple object's seventh component. + + + The value of the current tuple object's seventh component. + + + + + Gets the current tuple object's remaining components. + + + The value of the current tuple object's remaining components. + + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.Threading.Tasks.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..a089d474db56cd4f61044339689819946c04e381 GIT binary patch literal 164544 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.Threading.Tasks.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.Threading.Tasks.xml new file mode 100644 index 000000000..6c770122e --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/System.Threading.Tasks.xml @@ -0,0 +1,8969 @@ + + + + System.Threading.Tasks + + + + Represents one or more errors that occur during application execution. + + is used to consolidate multiple failures into a single, throwable + exception object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with + a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error + message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + The argument + is null. + + + + Initializes a new instance of the class with + references to the inner exceptions that are the cause of this exception. + + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with + references to the inner exceptions that are the cause of this exception. + + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with a specified error + message and references to the inner exceptions that are the cause of this exception. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with a specified error + message and references to the inner exceptions that are the cause of this exception. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Allocates a new aggregate exception with the specified message and list of inner exceptions. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Returns the that is the root cause of this exception. + + + + + Invokes a handler on each contained by this . + + The predicate to execute for each exception. The predicate accepts as an + argument the to be processed and returns a Boolean to indicate + whether the exception was handled. + + Each invocation of the returns true or false to indicate whether the + was handled. After all invocations, if any exceptions went + unhandled, all unhandled exceptions will be put into a new + which will be thrown. Otherwise, the method simply returns. If any + invocations of the throws an exception, it will halt the processing + of any more exceptions and immediately propagate the thrown exception as-is. + + An exception contained by this was not handled. + The argument is + null. + + + + Flattens an instances into a single, new instance. + + A new, flattened . + + If any inner exceptions are themselves instances of + , this method will recursively flatten all of them. The + inner exceptions returned in the new + will be the union of all of the the inner exceptions from exception tree rooted at the provided + instance. + + + + + Creates and returns a string representation of the current . + + A string representation of the current exception. + + + + Gets a read-only collection of the instances that caused the + current exception. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to One or more errors occurred.. + + + + + Looks up a localized string similar to An element of innerExceptions was null.. + + + + + Looks up a localized string similar to {0}{1}---> (Inner Exception #{2}) {3}{4}{5}. + + + + + Looks up a localized string similar to No tokens were supplied.. + + + + + Looks up a localized string similar to The CancellationTokenSource associated with this CancellationToken has been disposed.. + + + + + Looks up a localized string similar to The CancellationTokenSource has been disposed.. + + + + + Looks up a localized string similar to The SyncRoot property may not be used for the synchronization of concurrent collections.. + + + + + Looks up a localized string similar to The array is multidimensional, or the type parameter for the set cannot be cast automatically to the type of the destination array.. + + + + + Looks up a localized string similar to The index is equal to or greater than the length of the array, or the number of elements in the dictionary is greater than the available space from index to the end of the destination array.. + + + + + Looks up a localized string similar to The capacity argument must be greater than or equal to zero.. + + + + + Looks up a localized string similar to The concurrencyLevel argument must be positive.. + + + + + Looks up a localized string similar to The index argument is less than zero.. + + + + + Looks up a localized string similar to TKey is a reference type and item.Key is null.. + + + + + Looks up a localized string similar to The key already existed in the dictionary.. + + + + + Looks up a localized string similar to The source argument contains duplicate keys.. + + + + + Looks up a localized string similar to The key was of an incorrect type for this dictionary.. + + + + + Looks up a localized string similar to The value was of an incorrect type for this dictionary.. + + + + + Looks up a localized string similar to The lazily-initialized type does not have a public, parameterless constructor.. + + + + + Looks up a localized string similar to ValueFactory returned null.. + + + + + Looks up a localized string similar to The spinCount argument must be in the range 0 to {0}, inclusive.. + + + + + Looks up a localized string similar to There are too many threads currently waiting on the event. A maximum of {0} waiting threads are supported.. + + + + + Looks up a localized string similar to The event has been disposed.. + + + + + Looks up a localized string similar to The operation was canceled.. + + + + + Looks up a localized string similar to The condition argument is null.. + + + + + Looks up a localized string similar to The timeout must represent a value between -1 and Int32.MaxValue, inclusive.. + + + + + Looks up a localized string similar to The specified TaskContinuationOptions combined LongRunning and ExecuteSynchronously. Synchronous continuations should not be long running.. + + + + + Looks up a localized string similar to The specified TaskContinuationOptions excluded all continuation kinds.. + + + + + Looks up a localized string similar to (Internal)An attempt was made to create a LongRunning SelfReplicating task.. + + + + + Looks up a localized string similar to The value needs to translate in milliseconds to -1 (signifying an infinite timeout), 0 or a positive integer less than or equal to Int32.MaxValue.. + + + + + Looks up a localized string similar to The value needs to be either -1 (signifying an infinite timeout), 0 or a positive integer.. + + + + + Looks up a localized string similar to A task may only be disposed if it is in a completion state (RanToCompletion, Faulted or Canceled).. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.LongRunning in calls to FromAsync.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.PreferFairness in calls to FromAsync.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.SelfReplicating in calls to FromAsync.. + + + + + Looks up a localized string similar to FromAsync was called with a TaskManager that had already shut down.. + + + + + Looks up a localized string similar to The tasks argument contains no tasks.. + + + + + Looks up a localized string similar to It is invalid to exclude specific continuation kinds for continuations off of multiple tasks.. + + + + + Looks up a localized string similar to The tasks argument included a null value.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task that was already started.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a continuation task.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task not bound to a delegate, such as the task returned from an asynchronous method.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task that has already completed.. + + + + + Looks up a localized string similar to Start may not be called on a task that was already started.. + + + + + Looks up a localized string similar to Start may not be called on a continuation task.. + + + + + Looks up a localized string similar to Start may not be called on a task with null action.. + + + + + Looks up a localized string similar to Start may not be called on a promise-style task.. + + + + + Looks up a localized string similar to Start may not be called on a task that has completed.. + + + + + Looks up a localized string similar to The task has been disposed.. + + + + + Looks up a localized string similar to The tasks array included at least one null element.. + + + + + Looks up a localized string similar to The awaited task has not yet completed.. + + + + + Looks up a localized string similar to A task was canceled.. + + + + + Looks up a localized string similar to The exceptions collection was empty.. + + + + + Looks up a localized string similar to The exceptions collection included at least one null element.. + + + + + Looks up a localized string similar to A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.. + + + + + Looks up a localized string similar to (Internal)Expected an Exception or an IEnumerable<Exception>. + + + + + Looks up a localized string similar to ExecuteTask may not be called for a task which was already executed.. + + + + + Looks up a localized string similar to ExecuteTask may not be called for a task which was previously queued to a different TaskScheduler.. + + + + + Looks up a localized string similar to The current SynchronizationContext may not be used as a TaskScheduler.. + + + + + Looks up a localized string similar to The TryExecuteTaskInline call to the underlying scheduler succeeded, but the task body was not invoked.. + + + + + Looks up a localized string similar to An exception was thrown by a TaskScheduler.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.SelfReplicating for a Task<TResult>.. + + + + + Looks up a localized string similar to {Not yet computed}. + + + + + Looks up a localized string similar to A task's Exception may only be set directly if the task was created without a function.. + + + + + Looks up a localized string similar to An attempt was made to transition a task to a final state when it had already completed.. + + + + + Represents a thread-safe collection of keys and values. + + The type of the keys in the dictionary. + The type of the values in the dictionary. + + All public and protected members of are thread-safe and may be used + concurrently from multiple threads. + + + + + Initializes a new instance of the + class that is empty, has the default concurrency level, has the default initial capacity, and + uses the default comparer for the key type. + + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level and capacity, and uses the default + comparer for the key type. + + The estimated number of threads that will update the + concurrently. + The initial number of elements that the + can contain. + is + less than 1. + is less than + 0. + + + + Initializes a new instance of the + class that contains elements copied from the specified , has the default concurrency + level, has the default initial capacity, and uses the default comparer for the key type. + + The whose elements are copied to + the new + . + is a null reference + (Nothing in Visual Basic). + contains one or more + duplicate keys. + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level and capacity, and uses the specified + . + + The + implementation to use when comparing keys. + is a null reference + (Nothing in Visual Basic). + + + + Initializes a new instance of the + class that contains elements copied from the specified , has the default concurrency level, has the default + initial capacity, and uses the specified + . + + The whose elements are copied to + the new + . + The + implementation to use when comparing keys. + is a null reference + (Nothing in Visual Basic). -or- + is a null reference (Nothing in Visual Basic). + + + + + Initializes a new instance of the + class that contains elements copied from the specified , + has the specified concurrency level, has the specified initial capacity, and uses the specified + . + + The estimated number of threads that will update the + concurrently. + The whose elements are copied to the new + . + The implementation to use + when comparing keys. + + is a null reference (Nothing in Visual Basic). + -or- + is a null reference (Nothing in Visual Basic). + + + is less than 1. + + contains one or more duplicate keys. + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level, has the specified initial capacity, and + uses the specified . + + The estimated number of threads that will update the + concurrently. + The initial number of elements that the + can contain. + The + implementation to use when comparing keys. + + is less than 1. -or- + is less than 0. + + is a null reference + (Nothing in Visual Basic). + + + + Attempts to add the specified key and value to the . + + The key of the element to add. + The value of the element to add. The value can be a null reference (Nothing + in Visual Basic) for reference types. + true if the key/value pair was added to the + successfully; otherwise, false. + is null reference + (Nothing in Visual Basic). + The + contains too many elements. + + + + Determines whether the contains the specified + key. + + The key to locate in the . + true if the contains an element with + the specified key; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Attempts to remove and return the the value with the specified key from the + . + + The key of the element to remove and return. + When this method returns, contains the object removed from the + or the default value of + if the operation failed. + true if an object was removed successfully; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Removes the specified key from the dictionary if it exists and returns its associated value. + If matchValue flag is set, the key will be removed only if is associated with a particular + value. + + The key to search for and remove if it exists. + The variable into which the removed value, if found, is stored. + Whether removal of the key is conditional on its value. + The conditional value to compare against if is true + + + + + Attempts to get the value associated with the specified key from the . + + The key of the value to get. + When this method returns, contains the object from + the + with the spedified key or the default value of + , if the operation failed. + true if the key was found in the ; + otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Compares the existing value for the specified key with a specified value, and if they’re equal, + updates the key with a third value. + + The key whose value is compared with and + possibly replaced. + The value that replaces the value of the element with if the comparison results in equality. + The value that is compared to the value of the element with + . + true if the value with was equal to and replaced with ; otherwise, + false. + is a null + reference. + + + + Removes all keys and values from the . + + + + + Copies the elements of the to an array of + type , starting at the + specified array index. + + The one-dimensional array of type + that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying + begins. + is a null reference + (Nothing in Visual Basic). + is less than + 0. + is equal to or greater than + the length of the . -or- The number of elements in the source + is greater than the available space from to the end of the destination + . + + + + Copies the key and value pairs stored in the to a + new array. + + A new array containing a snapshot of key and value pairs copied from the . + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToPairs. + + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToEntries. + + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToObjects. + + + + Returns an enumerator that iterates through the . + An enumerator for the . + + The enumerator returned from the dictionary is safe to use concurrently with + reads and writes to the dictionary, however it does not represent a moment-in-time snapshot + of the dictionary. The contents exposed through the enumerator may contain modifications + made to the dictionary after was called. + + + + + Shared internal implementation for inserts and updates. + If key exists, we always return false; and if updateIfExists == true we force update with value; + If key doesn't exist, we always add value and return true; + + + + + Adds a key/value pair to the + if the key does not already exist. + + The key of the element to add. + The function used to generate a value for the key + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The value for the key. This will be either the existing value for the key if the + key is already in the dictionary, or the new value for the key as returned by valueFactory + if the key was not in the dictionary. + + + + Adds a key/value pair to the + if the key does not already exist. + + The key of the element to add. + the value to be added, if the key does not already exist + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The value for the key. This will be either the existing value for the key if the + key is already in the dictionary, or the new value if the key was not in the dictionary. + + + + Adds a key/value pair to the if the key does not already + exist, or updates a key/value pair in the if the key + already exists. + + The key to be added or whose value should be updated + The function used to generate a value for an absent key + The function used to generate a new value for an existing key + based on the key's existing value + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The new value for the key. This will be either be the result of addValueFactory (if the key was + absent) or the result of updateValueFactory (if the key was present). + + + + Adds a key/value pair to the if the key does not already + exist, or updates a key/value pair in the if the key + already exists. + + The key to be added or whose value should be updated + The value to be added for an absent key + The function used to generate a new value for an existing key based on + the key's existing value + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The new value for the key. This will be either be the result of addValueFactory (if the key was + absent) or the result of updateValueFactory (if the key was present). + + + + Adds the specified key and value to the . + + The object to use as the key of the element to add. + The object to use as the value of the element to add. + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + + An element with the same key already exists in the . + + + + Removes the element with the specified key from the . + + The key of the element to remove. + true if the element is successfully remove; otherwise false. This method also returns + false if + was not found in the original . + + is a null reference + (Nothing in Visual Basic). + + + + Adds the specified value to the + with the specified key. + + The + structure representing the key and value to add to the . + The of is null. + The + contains too many elements. + An element with the same key already exists in the + + + + + Determines whether the + contains a specific key and value. + + The + structure to locate in the . + true if the is found in the ; otherwise, false. + + + + Removes a key and value from the dictionary. + + The + structure representing the key and value to remove from the . + true if the key and value represented by is successfully + found and removed; otherwise, false. + The Key property of is a null reference (Nothing in Visual Basic). + + + Returns an enumerator that iterates through the . + An enumerator for the . + + The enumerator returned from the dictionary is safe to use concurrently with + reads and writes to the dictionary, however it does not represent a moment-in-time snapshot + of the dictionary. The contents exposed through the enumerator may contain modifications + made to the dictionary after was called. + + + + + Adds the specified key and value to the dictionary. + + The object to use as the key. + The object to use as the value. + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + + is of a type that is not assignable to the key type of the . -or- + is of a type that is not assignable to , + the type of values in the . + -or- A value with the same key already exists in the . + + + + + Gets whether the contains an + element with the specified key. + + The key to locate in the . + true if the contains + an element with the specified key; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + Provides an for the + . + An for the . + + + + Removes the element with the specified key from the . + + The key of the element to remove. + is a null reference + (Nothing in Visual Basic). + + + + Copies the elements of the to an array, starting + at the specified array index. + + The one-dimensional array that is the destination of the elements copied from + the . The array must have zero-based + indexing. + The zero-based index in at which copying + begins. + is a null reference + (Nothing in Visual Basic). + is less than + 0. + is equal to or greater than + the length of the . -or- The number of elements in the source + is greater than the available space from to the end of the destination + . + + + + Replaces the internal table with a larger one. To prevent multiple threads from resizing the + table as a result of races, the table of buckets that was deemed too small is passed in as + an argument to GrowTable(). GrowTable() obtains a lock, and then checks whether the bucket + table has been replaced in the meantime or not. + + Reference to the bucket table that was deemed too small. + + + + Computes the bucket and lock number for a particular key. + + + + + Acquires all locks for this hash table, and increments locksAcquired by the number + of locks that were successfully acquired. The locks are acquired in an increasing + order. + + + + + Acquires a contiguous range of locks for this hash table, and increments locksAcquired + by the number of locks that were successfully acquired. The locks are acquired in an + increasing order. + + + + + Releases a contiguous range of locks. + + + + + Gets a collection containing the keys in the dictionary. + + + + + Gets a collection containing the values in the dictionary. + + + + + A helper method for asserts. + + + + + Get the data array to be serialized + + + + + Construct the dictionary from a previously seiralized one + + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The value associated with the specified key. If the specified key is not found, a get + operation throws a + , and a set operation creates a new + element with the specified key. + is a null reference + (Nothing in Visual Basic). + The property is retrieved and + + does not exist in the collection. + + + + Gets the number of key/value pairs contained in the . + + The dictionary contains too many + elements. + The number of key/value paris contained in the . + Count has snapshot semantics and represents the number of items in the + at the moment when Count was accessed. + + + + Gets a value that indicates whether the is empty. + + true if the is empty; otherwise, + false. + + + + Gets a collection containing the keys in the . + + An containing the keys in the + . + + + + Gets a collection containing the values in the . + + An containing the values in + the + . + + + + Gets a value indicating whether the dictionary is read-only. + + true if the is + read-only; otherwise, false. For , this property always returns + false. + + + + Gets a value indicating whether the has a fixed size. + + true if the has a + fixed size; otherwise, false. For , this property always + returns false. + + + + Gets a value indicating whether the is read-only. + + true if the is + read-only; otherwise, false. For , this property always + returns false. + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + + Gets an containing the values in the . + + An containing the values in the . + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The value associated with the specified key, or a null reference (Nothing in Visual Basic) + if is not in the dictionary or is of a type that is + not assignable to the key type of the . + is a null reference + (Nothing in Visual Basic). + + A value is being assigned, and is of a type that is not assignable to the + key type of the . -or- A value is being + assigned, and is of a type that is not assignable to the value type + of the + + + + + Gets a value indicating whether access to the is + synchronized with the SyncRoot. + + true if access to the is synchronized + (thread safe); otherwise, false. For , this property always + returns false. + + + + Gets an object that can be used to synchronize access to the . This property is not supported. + + The SyncRoot property is not supported. + + + + The number of concurrent writes for which to optimize by default. + + + + + A node in a singly-linked list representing a particular hash table bucket. + + + + + A private class to represent enumeration over the dictionary that implements the + IDictionaryEnumerator interface. + + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + Represents an asynchronous method builder. + + + A cached VoidTaskResult task used for builders that complete synchronously. + + + The generic builder object to which this non-generic instance delegates. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state. + + The builder is not initialized. + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + + Gets the for this builder. + The representing the builder's asynchronous operation. + The builder is not initialized. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + Holds state related to the builder's IAsyncStateMachine. + This is a mutable struct. Be very delicate with it. + + + A reference to the heap-allocated state machine object associated with this builder. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument is null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + + Gets the Action to use with an awaiter's OnCompleted or UnsafeOnCompleted method. + On first invocation, the supplied state machine will be boxed. + + Specifies the type of the method builder used. + Specifies the type of the state machine used. + The builder. + The state machine. + An Action to provide to the awaiter. + + + Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext. + + + The context with which to run MoveNext. + + + The state machine whose MoveNext method should be invoked. + + + Initializes the runner. + The context with which to run MoveNext. + + + Invokes MoveNext under the provided context. + + + Cached delegate used with ExecutionContext.Run. + + + Invokes the MoveNext method on the supplied IAsyncStateMachine. + The IAsyncStateMachine machine instance. + + + + Provides a builder for asynchronous methods that return void. + This type is intended for compiler use only. + + + + The synchronization context associated with this operation. + + + State related to the IAsyncStateMachine. + + + An object used by the debugger to uniquely identify this builder. Lazily initialized. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Registers with UnobservedTaskException to suppress exception crashing. + + + Non-zero if PreventUnobservedTaskExceptions has already been invoked. + + + Initializes a new . + The initialized . + + + Initializes the . + The synchronizationContext associated with this operation. This may be null. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument was null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + Completes the method builder successfully. + + + Faults the method builder with an exception. + The exception that is the cause of this fault. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + + + Notifies the current synchronization context that the operation completed. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger and only in a single-threaded manner. + + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder{TResult} is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + A cached task for default(TResult). + + + State related to the IAsyncStateMachine. + + + The lazily-initialized task. + Must be named m_task for debugger step-over to work correctly. + + + The lazily-initialized task completion source. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state with the specified result. + + The result to use to complete the task. + The task has already completed. + + + + Completes the builder by using either the supplied completed task, or by completing + the builder's previously accessed task using default(TResult). + + A task already completed with the value default(TResult). + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + This should only be invoked from within an asynchronous method, + and only by the debugger. + + + + + Gets a task for the specified result. This will either + be a cached or new task, never null. + + The result for which we need a task. + The completed task containing the result. + + + Gets the lazily-initialized TaskCompletionSource. + + + Gets the for this builder. + The representing the builder's asynchronous operation. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + Provides a base class used to cache tasks of a specific return type. + Specifies the type of results the cached tasks return. + + + + A singleton cache for this result type. + This may be null if there are no cached tasks for this TResult. + + + + Creates a non-disposable task. + The result for the task. + The cacheable task. + + + Creates a cache. + A task cache for this result type. + + + Gets a cached task if one exists. + The result for which we want a cached task. + A cached task if one exists; otherwise, null. + + + Provides a cache for Boolean tasks. + + + A true task. + + + A false task. + + + Gets a cached task for the Boolean result. + true or false + A cached task for the Boolean result. + + + Provides a cache for zero Int32 tasks. + + + The minimum value, inclusive, for which we want a cached task. + + + The maximum value, exclusive, for which we want a cached task. + + + The cache of Task{Int32}. + + + Creates an array of cached tasks for the values in the range [INCLUSIVE_MIN,EXCLUSIVE_MAX). + + + Gets a cached task for the zero Int32 result. + The integer value + A cached task for the Int32 result or null if not cached. + + + + Represents state machines generated for asynchronous methods. + This type is intended for compiler use only. + + + + Moves the state machine to its next state. + + + Configures the state machine with a heap-allocated replica. + The heap-allocated replica. + + + + Represents an awaiter used to schedule continuations when an await operation completes. + + + + + Represents an operation that will schedule continuations when the operation completes. + + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + Unlike OnCompleted, UnsafeOnCompleted need not propagate ExecutionContext information. + + + Used with Task(of void) + + + + An interface similar to the one added in .NET 4.0. + + + + The exception that is thrown in a thread upon cancellation of an operation that the thread was executing. + + + Initializes the exception. + + + Initializes the exception. + The error message that explains the reason for the exception. + + + Initializes the exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + Initializes the exception. + A cancellation token associated with the operation that was canceled. + + + Initializes the exception. + The error message that explains the reason for the exception. + A cancellation token associated with the operation that was canceled. + + + Initializes the exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + A cancellation token associated with the operation that was canceled. + + + Gets a token associated with the operation that was canceled. + + + + A dummy replacement for the .NET internal class StackCrawlMark. + + + + + Propogates notification that operations should be canceled. + + + + A may be created directly in an unchangeable canceled or non-canceled state + using the CancellationToken's constructors. However, to have a CancellationToken that can change + from a non-canceled to a canceled state, + CancellationTokenSource must be used. + CancellationTokenSource exposes the associated CancellationToken that may be canceled by the source through its + Token property. + + + Once canceled, a token may not transition to a non-canceled state, and a token whose + is false will never change to one that can be canceled. + + + All members of this struct are thread-safe and may be used concurrently from multiple threads. + + + + + + Internal constructor only a CancellationTokenSource should create a CancellationToken + + + + + Initializes the CancellationToken. + + + The canceled state for the token. + + + Tokens created with this constructor will remain in the canceled state specified + by the parameter. If is false, + both and will be false. + If is true, + both and will be true. + + + + + Registers a delegate that will be called when this CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + A Boolean value that indicates whether to capture + the current SynchronizationContext and use it + when invoking the . + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The state to pass to the when the delegate is invoked. This may be null. + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The state to pass to the when the delegate is invoked. This may be null. + A Boolean value that indicates whether to capture + the current SynchronizationContext and use it + when invoking the . + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Determines whether the current CancellationToken instance is equal to the + specified token. + + The other CancellationToken to which to compare this + instance. + True if the instances are equal; otherwise, false. Two tokens are equal if they are associated + with the same CancellationTokenSource or if they were both constructed + from public CancellationToken constructors and their values are equal. + + + + Determines whether the current CancellationToken instance is equal to the + specified . + + The other object to which to compare this instance. + True if is a CancellationToken + and if the two instances are equal; otherwise, false. Two tokens are equal if they are associated + with the same CancellationTokenSource or if they were both constructed + from public CancellationToken constructors and their values are equal. + An associated CancellationTokenSource has been disposed. + + + + Serves as a hash function for a CancellationToken. + + A hash code for the current CancellationToken instance. + + + + Determines whether two CancellationToken instances are equal. + + The first instance. + The second instance. + True if the instances are equal; otherwise, false. + An associated CancellationTokenSource has been disposed. + + + + Determines whether two CancellationToken instances are not equal. + + The first instance. + The second instance. + True if the instances are not equal; otherwise, false. + An associated CancellationTokenSource has been disposed. + + + + Throws a OperationCanceledException if + this token has had cancellation requested. + + + This method provides functionality equivalent to: + + if (token.IsCancellationRequested) + throw new OperationCanceledException(token); + + + The token has had cancellation requested. + The associated CancellationTokenSource has been disposed. + + + + Returns an empty CancellationToken value. + + + The value returned by this property will be non-cancelable by default. + + + + + Gets whether cancellation has been requested for this token. + + Whether cancellation has been requested for this token. + + + This property indicates whether cancellation has been requested for this token, + either through the token initially being construted in a canceled state, or through + calling Cancel + on the token's associated . + + + If this property is true, it only guarantees that cancellation has been requested. + It does not guarantee that every registered handler + has finished executing, nor that cancellation requests have finished propagating + to all registered handlers. Additional synchronization may be required, + particularly in situations where related objects are being canceled concurrently. + + + + + + Gets whether this token is capable of being in the canceled state. + + + If CanBeCanceled returns false, it is guaranteed that the token will never transition + into a canceled state, meaning that will never + return true. + + + + + Gets a that is signaled when the token is canceled. + + Accessing this property causes a WaitHandle + to be instantiated. It is preferable to only use this property when necessary, and to then + dispose the associated instance at the earliest opportunity (disposing + the source will dispose of this allocated handle). The handle should not be closed or disposed directly. + + The associated CancellationTokenSource has been disposed. + + + + Represents a callback delegate that has been registered with a CancellationToken. + + + To unregister a callback, dispose the corresponding Registration instance. + + + + + Attempts to deregister the item. If it's already being run, this may fail. + Entails a full memory fence. + + True if the callback was found and deregistered, false otherwise. + + + + Disposes of the registration and unregisters the target callback from the associated + CancellationToken. + If the target callback is currently executing this method will wait until it completes, except + in the degenerate cases where a callback method deregisters itself. + + + + + Determines whether two CancellationTokenRegistration + instances are equal. + + The first instance. + The second instance. + True if the instances are equal; otherwise, false. + + + + Determines whether two CancellationTokenRegistration instances are not equal. + + The first instance. + The second instance. + True if the instances are not equal; otherwise, false. + + + + Determines whether the current CancellationTokenRegistration instance is equal to the + specified . + + The other object to which to compare this instance. + True, if both this and are equal. False, otherwise. + Two CancellationTokenRegistration instances are equal if + they both refer to the output of a single call to the same Register method of a + CancellationToken. + + + + + Determines whether the current CancellationToken instance is equal to the + specified . + + The other CancellationTokenRegistration to which to compare this instance. + True, if both this and are equal. False, otherwise. + Two CancellationTokenRegistration instances are equal if + they both refer to the output of a single call to the same Register method of a + CancellationToken. + + + + + Serves as a hash function for a CancellationTokenRegistration.. + + A hash code for the current CancellationTokenRegistration instance. + + + + Signals to a that it should be canceled. + + + + is used to instantiate a + (via the source's Token property) + that can be handed to operations that wish to be notified of cancellation or that can be used to + register asynchronous operations for cancellation. That token may have cancellation requested by + calling to the source's Cancel + method. + + + All members of this class, except Dispose, are thread-safe and may be used + concurrently from multiple threads. + + + + + The ID of the thread currently executing the main body of CTS.Cancel() + this helps us to know if a call to ctr.Dispose() is running 'within' a cancellation callback. + This is updated as we move between the main thread calling cts.Cancel() and any syncContexts that are used to + actually run the callbacks. + + + + Initializes the . + + + + + Communicates a request for cancellation. + + + + The associated will be + notified of the cancellation and will transition to a state where + IsCancellationRequested returns true. + Any callbacks or cancelable operations + registered with the will be executed. + + + Cancelable operations and callbacks registered with the token should not throw exceptions. + However, this overload of Cancel will aggregate any exceptions thrown into a , + such that one callback throwing an exception will not prevent other registered callbacks from being executed. + + + The that was captured when each callback was registered + will be reestablished when the callback is invoked. + + + An aggregate exception containing all the exceptions thrown + by the registered callbacks on the associated . + This has been disposed. + + + + Communicates a request for cancellation. + + + + The associated will be + notified of the cancellation and will transition to a state where + IsCancellationRequested returns true. + Any callbacks or cancelable operations + registered with the will be executed. + + + Cancelable operations and callbacks registered with the token should not throw exceptions. + If is true, an exception will immediately propagate out of the + call to Cancel, preventing the remaining callbacks and cancelable operations from being processed. + If is false, this overload will aggregate any + exceptions thrown into a , + such that one callback throwing an exception will not prevent other registered callbacks from being executed. + + + The that was captured when each callback was registered + will be reestablished when the callback is invoked. + + + Specifies whether exceptions should immediately propagate. + An aggregate exception containing all the exceptions thrown + by the registered callbacks on the associated . + This has been disposed. + + + + Releases the resources used by this . + + + This method is not thread-safe for any other concurrent calls. + + + + + Throws an exception if the source has been disposed. + + + + + InternalGetStaticSource() + + Whether the source should be set. + A static source to be shared among multiple tokens. + + + + Registers a callback object. If cancellation has already occurred, the + callback will have been run by the time this method returns. + + + + + + + + + + Invoke the Canceled event. + + + The handlers are invoked synchronously in LIFO order. + + + + + Creates a CancellationTokenSource that will be in the canceled state + when any of the source tokens are in the canceled state. + + The first CancellationToken to observe. + The second CancellationToken to observe. + A CancellationTokenSource that is linked + to the source tokens. + A CancellationTokenSource associated with + one of the source tokens has been disposed. + + + + Creates a CancellationTokenSource that will be in the canceled state + when any of the source tokens are in the canceled state. + + The CancellationToken instances to observe. + A CancellationTokenSource that is linked + to the source tokens. + is null. + A CancellationTokenSource associated with + one of the source tokens has been disposed. + + + + Gets whether cancellation has been requested for this CancellationTokenSource. + + Whether cancellation has been requested for this CancellationTokenSource. + + + This property indicates whether cancellation has been requested for this token source, such as + due to a call to its + Cancel method. + + + If this property returns true, it only guarantees that cancellation has been requested. It does not + guarantee that every handler registered with the corresponding token has finished executing, nor + that cancellation requests have finished propagating to all registered handlers. Additional + synchronization may be required, particularly in situations where related objects are being + canceled concurrently. + + + + + + A simple helper to determine whether cancellation has finished. + + + + + A simple helper to determine whether disposal has occured. + + + + + The ID of the thread that is running callbacks. + + + + + Gets the CancellationToken + associated with this . + + The CancellationToken + associated with this . + The token source has been + disposed. + + + + + + + + + + + + + + The currently executing callback + + + + + A helper class for collating the various bits of information required to execute + cancellation callbacks. + + + + + InternalExecuteCallbackSynchronously_GeneralPath + This will be called on the target synchronization context, however, we still need to restore the required execution context + + + + + A sparsely populated array. Elements can be sparse and some null, but this allows for + lock-free additions and growth, and also for constant time removal (by nulling out). + + The kind of elements contained within. + + + + Allocates a new array with the given initial size. + + How many array slots to pre-allocate. + + + + Adds an element in the first available slot, beginning the search from the tail-to-head. + If no slots are available, the array is grown. The method doesn't return until successful. + + The element to add. + Information about where the add happened, to enable O(1) deregistration. + + + + The tail of the doubly linked list. + + + + + A struct to hold a link to the exact spot in an array an element was inserted, enabling + constant time removal later on. + + + + + A fragment of a sparsely populated array, doubly linked. + + The kind of elements contained within. + + + + Provides lazy initialization routines. + + + These routines avoid needing to allocate a dedicated, lazy-initialization instance, instead using + references to ensure targets have been initialized as they are accessed. + + + + + Initializes a target reference type with the type's default constructor if the target has not + already been initialized. + + The refence type of the reference to be initialized. + A reference of type to initialize if it has not + already been initialized. + The initialized reference of type . + Type does not have a default + constructor. + + Permissions to access the constructor of type were missing. + + + + This method may only be used on reference types. To ensure initialization of value + types, see other overloads of EnsureInitialized. + + + This method may be used concurrently by multiple threads to initialize . + In the event that multiple threads access this method concurrently, multiple instances of + may be created, but only one will be stored into . In such an occurrence, this method will not dispose of the + objects that were not stored. If such objects must be disposed, it is up to the caller to determine + if an object was not used and to then dispose of the object appropriately. + + + + + + Initializes a target reference type using the specified function if it has not already been + initialized. + + The reference type of the reference to be initialized. + The reference of type to initialize if it has not + already been initialized. + The invoked to initialize the + reference. + The initialized reference of type . + Type does not have a + default constructor. + returned + null. + + + This method may only be used on reference types, and may + not return a null reference (Nothing in Visual Basic). To ensure initialization of value types or + to allow null reference types, see other overloads of EnsureInitialized. + + + This method may be used concurrently by multiple threads to initialize . + In the event that multiple threads access this method concurrently, multiple instances of + may be created, but only one will be stored into . In such an occurrence, this method will not dispose of the + objects that were not stored. If such objects must be disposed, it is up to the caller to determine + if an object was not used and to then dispose of the object appropriately. + + + + + + Initialize the target using the given delegate (slow path). + + The reference type of the reference to be initialized. + The variable that need to be initialized + The delegate that will be executed to initialize the target + The initialized variable + + + + Initializes a target reference or value type with its default constructor if it has not already + been initialized. + + The type of the reference to be initialized. + A reference or value of type to initialize if it + has not already been initialized. + A reference to a boolean that determines whether the target has already + been initialized. + A reference to an object used as the mutually exclusive lock for initializing + . + The initialized value of type . + + + + Initializes a target reference or value type with a specified function if it has not already been + initialized. + + The type of the reference to be initialized. + A reference or value of type to initialize if it + has not already been initialized. + A reference to a boolean that determines whether the target has already + been initialized. + A reference to an object used as the mutually exclusive lock for initializing + . + The invoked to initialize the + reference or value. + The initialized value of type . + + + + Ensure the target is initialized and return the value (slow path). This overload permits nulls + and also works for value type targets. Uses the supplied function to create the value. + + The type of target. + A reference to the target to be initialized. + A reference to a location tracking whether the target has been initialized. + A reference to a location containing a mutual exclusive lock. + + The to invoke in order to produce the lazily-initialized value. + + The initialized object. + + + + Provides a slimmed down version of . + + + All public and protected members of are thread-safe and may be used + concurrently from multiple threads, with the exception of Dispose, which + must only be used when all other operations on the have + completed, and Reset, which should only be used when no other threads are + accessing the event. + + + + + Initializes a new instance of the + class with an initial state of nonsignaled. + + + + + Initializes a new instance of the + class with a Boolen value indicating whether to set the intial state to signaled. + + true to set the initial state signaled; false to set the initial state + to nonsignaled. + + + + Initializes a new instance of the + class with a Boolen value indicating whether to set the intial state to signaled and a specified + spin count. + + true to set the initial state to signaled; false to set the initial state + to nonsignaled. + The number of spin waits that will occur before falling back to a true + wait. + is less than + 0 or greater than the maximum allowed value. + + + + Initializes the internal state of the event. + + Whether the event is set initially or not. + The spin count that decides when the event will block. + + + + Helper to ensure the lock object is created before first use. + + + + + This method lazily initializes the event object. It uses CAS to guarantee that + many threads racing to call this at once don't result in more than one event + being stored and used. The event will be signaled or unsignaled depending on + the state of the thin-event itself, with synchronization taken into account. + + True if a new event was created and stored, false otherwise. + + + + Sets the state of the event to signaled, which allows one or more threads waiting on the event to + proceed. + + + + + Private helper to actually perform the Set. + + Indicates whether we are calling Set() during cancellation. + The object has been canceled. + + + + Sets the state of the event to nonsignaled, which causes threads to block. + + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + Blocks the current thread until the current is set. + + + The maximum number of waiters has been exceeded. + + + The caller of this method blocks indefinitely until the current instance is set. The caller will + return immediately if the event is currently in a set state. + + + + + Blocks the current thread until the current receives a signal, + while observing a . + + The to + observe. + + The maximum number of waiters has been exceeded. + + was + canceled. + + The caller of this method blocks indefinitely until the current instance is set. The caller will + return immediately if the event is currently in a set state. + + + + + Blocks the current thread until the current is set, using a + to measure the time interval. + + A that represents the number of milliseconds + to wait, or a that represents -1 milliseconds to wait indefinitely. + + true if the was set; otherwise, + false. + is a negative + number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater + than . + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + to measure the time interval, while observing a . + + A that represents the number of milliseconds + to wait, or a that represents -1 milliseconds to wait indefinitely. + + The to + observe. + true if the was set; otherwise, + false. + is a negative + number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater + than . + was canceled. + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + 32-bit signed integer to measure the time interval. + + The number of milliseconds to wait, or (-1) to wait indefinitely. + true if the was set; otherwise, + false. + is a + negative number other than -1, which represents an infinite time-out. + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + 32-bit signed integer to measure the time interval, while observing a . + + The number of milliseconds to wait, or (-1) to wait indefinitely. + The to + observe. + true if the was set; otherwise, + false. + is a + negative number other than -1, which represents an infinite time-out. + + The maximum number of waiters has been exceeded. + + was canceled. + + + + Releases all resources used by the current instance of . + + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + When overridden in a derived class, releases the unmanaged resources used by the + , and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + Throw ObjectDisposedException if the MRES is disposed + + + + + Private helper method to wake up waiters when a cancellationToken gets canceled. + + + + + Private helper method for updating parts of a bit-string state value. + Mainly called from the IsSet and Waiters properties setters + + + Note: the parameter types must be int as CompareExchange cannot take a Uint + + The new value + The mask used to set the bits + + + + Private helper method - performs Mask and shift, particular helpful to extract a field from a packed word. + eg ExtractStatePortionAndShiftRight(0x12345678, 0xFF000000, 24) => 0x12, ie extracting the top 8-bits as a simple integer + + ?? is there a common place to put this rather than being private to MRES? + + + + + + + + + Performs a Mask operation, but does not perform the shift. + This is acceptable for boolean values for which the shift is unnecessary + eg (val & Mask) != 0 is an appropriate way to extract a boolean rather than using + ((val & Mask) >> shiftAmount) == 1 + + ?? is there a common place to put this rather than being private to MRES? + + + + + + + Helper function to measure and update the wait time + + The first time (in Ticks) observed when the wait started. + The orginal wait timeoutout in milliseconds. + The new wait time in milliseconds, -1 if the time expired, -2 if overflow in counters + has occurred. + + + + Gets the underlying object for this . + + The underlying event object fore this . + + Accessing this property forces initialization of an underlying event object if one hasn't + already been created. To simply wait on this , + the public Wait methods should be preferred. + + + + + Gets whether the event is set. + + true if the event has is set; otherwise, false. + + + + Gets the number of spin waits that will be occur before falling back to a true wait. + + + + + How many threads are waiting. + + + + + Provides support for spin-based waiting. + + + + encapsulates common spinning logic. On single-processor machines, yields are + always used instead of busy waits, and on computers with Intel™ processors employing Hyper-Threading™ + technology, it helps to prevent hardware thread starvation. SpinWait encapsulates a good mixture of + spinning and true yielding. + + + is a value type, which means that low-level code can utilize SpinWait without + fear of unnecessary allocation overheads. SpinWait is not generally useful for ordinary applications. + In most cases, you should use the synchronization classes provided by the .NET Framework, such as + . For most purposes where spin waiting is required, however, + the type should be preferred over the System.Threading.Thread.SpinWait method. + + + While SpinWait is designed to be used in concurrent applications, it is not designed to be + used from multiple threads concurrently. SpinWait's members are not thread-safe. If multiple + threads must spin, each should use its own instance of SpinWait. + + + + + + Performs a single spin. + + + This is typically called in a loop, and may change in behavior based on the number of times a + has been called thus far on this instance. + + + + + Resets the spin counter. + + + This makes and behave as though no calls + to had been issued on this instance. If a instance + is reused many times, it may be useful to reset it to avoid yielding too soon. + + + + + Spins until the specified condition is satisfied. + + A delegate to be executed over and over until it returns true. + The argument is null. + + + + Spins until the specified condition is satisfied or until the specified timeout is expired. + + A delegate to be executed over and over until it returns true. + + A that represents the number of milliseconds to wait, + or a TimeSpan that represents -1 milliseconds to wait indefinitely. + True if the condition is satisfied within the timeout; otherwise, false + The argument is null. + is a negative number + other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than + . + + + + Spins until the specified condition is satisfied or until the specified timeout is expired. + + A delegate to be executed over and over until it returns true. + The number of milliseconds to wait, or (-1) to wait indefinitely. + True if the condition is satisfied within the timeout; otherwise, false + The argument is null. + is a + negative number other than -1, which represents an infinite time-out. + + + + Gets the number of times has been called on this instance. + + + + + Gets whether the next call to will yield the processor, triggering a + forced context switch. + + Whether the next call to will yield the processor, triggering a + forced context switch. + + On a single-CPU machine, always yields the processor. On machines with + multiple CPUs, may yield after an unspecified number of calls. + + + + + A helper class to get the number of preocessors, it updates the numbers of processors every sampling interval + + + + + Gets the number of available processors + + + + + Gets whether the current machine has only a single processor. + + + + + Represents an asynchronous operation that produces a result at some time in the future. + + + The type of the result produced by this . + + + + instances may be created in a variety of ways. The most common approach is by + using the task's property to retrieve a instance that can be used to create tasks for several + purposes. For example, to create a that runs a function, the factory's StartNew + method may be used: + + // C# + var t = Task<int>.Factory.StartNew(() => GenerateResult()); + - or - + var t = Task.Factory.StartNew(() => GenerateResult()); + + ' Visual Basic + Dim t = Task<int>.Factory.StartNew(Function() GenerateResult()) + - or - + Dim t = Task.Factory.StartNew(Function() GenerateResult()) + + + + The class also provides constructors that initialize the task but that do not + schedule it for execution. For performance reasons, the StartNew method should be the + preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation + and scheduling must be separated, the constructors may be used, and the task's + Start + method may then be used to schedule the task for execution at a later time. + + + All members of , except for + Dispose, are thread-safe + and may be used from multiple threads concurrently. + + + + + + Represents an asynchronous operation. + + + + instances may be created in a variety of ways. The most common approach is by + using the Task type's property to retrieve a instance that can be used to create tasks for several + purposes. For example, to create a that runs an action, the factory's StartNew + method may be used: + + // C# + var t = Task.Factory.StartNew(() => DoAction()); + + ' Visual Basic + Dim t = Task.Factory.StartNew(Function() DoAction()) + + + + The class also provides constructors that initialize the Task but that do not + schedule it for execution. For performance reasons, TaskFactory's StartNew method should be the + preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation + and scheduling must be separated, the constructors may be used, and the task's + method may then be used to schedule the task for execution at a later time. + + + All members of , except for , are thread-safe + and may be used from multiple threads concurrently. + + + For operations that return values, the class + should be used. + + + For developers implementing custom debuggers, several internal and private members of Task may be + useful (these may change from release to release). The Int32 m_taskId field serves as the backing + store for the property, however accessing this field directly from a debugger may be + more efficient than accessing the same value through the property's getter method (the + s_taskIdCounter Int32 counter is used to retrieve the next available ID for a Task). Similarly, the + Int32 m_stateFlags field stores information about the current lifecycle stage of the Task, + information also accessible through the property. The m_action System.Object + field stores a reference to the Task's delegate, and the m_stateObject System.Object field stores the + async state passed to the Task by the developer. Finally, for debuggers that parse stack frames, the + InternalWait method serves a potential marker for when a Task is entering a wait operation. + + + + + + A type initializer that runs with the appropriate permissions. + + + + + Initializes a new with the specified action. + + The delegate that represents the code to execute in the Task. + The argument is null. + + + + Initializes a new with the specified action and CancellationToken. + + The delegate that represents the code to execute in the Task. + The CancellationToken + that will be assigned to the new Task. + The argument is null. + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action and creation options. + + The delegate that represents the code to execute in the task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action and creation options. + + The delegate that represents the code to execute in the task. + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action and state. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + + The argument is null. + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + The that will be assigned to the new task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + An internal constructor used by the factory methods on task and its descendent(s). + This variant does not capture the ExecutionContext; it is up to the caller to do that. + + An action to execute. + Optional state to pass to the action. + Parent of Task. + A CancellationToken for the task. + A task scheduler under which the task will run. + Options to control its execution. + Internal options to control its execution + + + + Common logic used by the following internal ctors: + Task() + Task(object action, object state, Task parent, TaskCreationOptions options, TaskScheduler taskScheduler) + + ASSUMES THAT m_creatingTask IS ALREADY SET. + + + Action for task to execute. + Object to which to pass to action (may be null) + Task scheduler on which to run thread (only used by continuation tasks). + A CancellationToken for the Task. + Options to customize behavior of Task. + Internal options to customize behavior of Task. + + + + Checks if we registered a CT callback during construction, and deregisters it. + This should be called when we know the registration isn't useful anymore. Specifically from Finish() if the task has completed + successfully or with an exception. + + + + + Captures the ExecutionContext so long as flow isn't suppressed. + + A stack crawl mark pointing to the frame of the caller. + + + + Internal function that will be called by a new child task to add itself to + the children list of the parent (this). + + Since a child task can only be created from the thread executing the action delegate + of this task, reentrancy is neither required nor supported. This should not be called from + anywhere other than the task construction/initialization codepaths. + + + + + Starts the , scheduling it for execution to the current TaskScheduler. + + + A task may only be started and run only once. Any attempts to schedule a task a second time + will result in an exception. + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Starts the , scheduling it for execution to the specified TaskScheduler. + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + The TaskScheduler with which to associate + and execute this task. + + + The argument is null. + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Runs the synchronously on the current TaskScheduler. + + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + Tasks executed with will be associated with the current TaskScheduler. + + + If the target scheduler does not support running this Task on the current thread, the Task will + be scheduled for execution on the scheduler, and the current thread will block until the + Task has completed execution. + + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Runs the synchronously on the scheduler provided. + + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + If the target scheduler does not support running this Task on the current thread, the Task will + be scheduled for execution on the scheduler, and the current thread will block until the + Task has completed execution. + + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + The parameter + is null. + The scheduler on which to attempt to run this task inline. + + + + Throws an exception if the task has been disposed, and hence can no longer be accessed. + + The task has been disposed. + + + + Sets the internal completion event. + + + + + Disposes the , releasing all of its unmanaged resources. + + + Unlike most of the members of , this method is not thread-safe. + Also, may only be called on a that is in one of + the final states: RanToCompletion, + Faulted, or + Canceled. + + + The exception that is thrown if the is not in + one of the final states: RanToCompletion, + Faulted, or + Canceled. + + + + + Disposes the , releasing all of its unmanaged resources. + + + A Boolean value that indicates whether this method is being called due to a call to . + + + Unlike most of the members of , this method is not thread-safe. + + + + + Schedules the task for execution. + + If true, TASK_STATE_STARTED bit is turned on in + an atomic fashion, making sure that TASK_STATE_CANCELED does not get set + underneath us. If false, TASK_STATE_STARTED bit is OR-ed right in. This + allows us to streamline things a bit for StartNew(), where competing cancellations + are not a problem. + + + + Adds an exception to the list of exceptions this task has thrown. + + An object representing either an Exception or a collection of Exceptions. + + + + Returns a list of exceptions by aggregating the holder's contents. Or null if + no exceptions have been thrown. + + Whether to include a TCE if cancelled. + An aggregate exception, or null if no exceptions have been caught. + + + + Throws an aggregate exception if the task contains exceptions. + + + + + Checks whether this is an attached task, and whether we are being called by the parent task. + And sets the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag based on that. + + This is meant to be used internally when throwing an exception, and when WaitAll is gathering + exceptions for tasks it waited on. If this flag gets set, the implicit wait on children + will skip exceptions to prevent duplication. + + This should only be called when this task has completed with an exception + + + + + + Signals completion of this particular task. + + The bUserDelegateExecuted parameter indicates whether this Finish() call comes following the + full execution of the user delegate. + + If bUserDelegateExecuted is false, it mean user delegate wasn't invoked at all (either due to + a cancellation request, or because this task is a promise style Task). In this case, the steps + involving child tasks (i.e. WaitForChildren) will be skipped. + + + + + + FinishStageTwo is to be executed as soon as we known there are no more children to complete. + It can happen i) either on the thread that originally executed this task (if no children were spawned, or they all completed by the time this task's delegate quit) + ii) or on the thread that executed the last child. + + + + + Final stage of the task completion code path. Notifies the parent (if any) that another of its childre are done, and runs continuations. + This function is only separated out from FinishStageTwo because these two operations are also needed to be called from CancellationCleanupLogic() + + + + + This is called by children of this task when they are completed. + + + + + This is to be called just before the task does its final state transition. + It traverses the list of exceptional children, and appends their aggregate exceptions into this one's exception list + + + + + Special purpose Finish() entry point to be used when the task delegate throws a ThreadAbortedException + This makes a note in the state flags so that we avoid any costly synchronous operations in the finish codepath + such as inlined continuations + + + Indicates whether the ThreadAbortException was added to this task's exception holder. + This should always be true except for the case of non-root self replicating task copies. + + Whether the delegate was executed. + + + + Executes the task. This method will only be called once, and handles bookeeping associated with + self-replicating tasks, in addition to performing necessary exception marshaling. + + The task has already been disposed. + + + + IThreadPoolWorkItem override, which is the entry function for this task when the TP scheduler decides to run it. + + + + + + Outermost entry function to execute this task. Handles all aspects of executing a task on the caller thread. + Currently this is called by IThreadPoolWorkItem.ExecuteWorkItem(), and TaskManager.TryExecuteInline. + + + Performs atomic updates to prevent double execution. Should only be set to true + in codepaths servicing user provided TaskSchedulers. The ConcRT or ThreadPool schedulers don't need this. + + + + The actual code which invokes the body of the task. This can be overriden in derived types. + + + + + Alternate InnerInvoke prototype to be called from ExecuteSelfReplicating() so that + the Parallel Debugger can discover the actual task being invoked. + Details: Here, InnerInvoke is actually being called on the rootTask object while we are actually executing the + childTask. And the debugger needs to discover the childTask, so we pass that down as an argument. + The NoOptimization and NoInlining flags ensure that the childTask pointer is retained, and that this + function appears on the callstack. + + + + + + Performs whatever handling is necessary for an unhandled exception. Normally + this just entails adding the exception to the holder object. + + The exception that went unhandled. + + + + Waits for the to complete execution. + + + The was canceled -or- an exception was thrown during + the execution of the . + + + The has been disposed. + + + + + Waits for the to complete execution. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + true if the completed execution within the allotted time; otherwise, false. + + + The was canceled -or- an exception was thrown during the execution of the . + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + The has been disposed. + + + + + Waits for the to complete execution. + + + A to observe while waiting for the task to complete. + + + The was canceled. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + + + Waits for the to complete execution. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + true if the completed execution within the allotted time; otherwise, + false. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + + + Waits for the to complete execution. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for the task to complete. + + + true if the completed execution within the allotted time; otherwise, false. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + The core wait function, which is only accesible internally. It's meant to be used in places in TPL code where + the current context is known or cached. + + + + + Cancels the . + + Indiactes whether we should only cancel non-invoked tasks. + For the default scheduler this option will only be serviced through TryDequeue. + For custom schedulers we also attempt an atomic state transition. + true if the task was successfully canceled; otherwise, false. + The + has been disposed. + + + + Sets the task's cancellation acknowledged flag. + + + + + Runs all of the continuations, as appropriate. + + + + + Helper function to determine whether the current task is in the state desired by the + continuation kind under evaluation. Three possibilities exist: the task failed with + an unhandled exception (OnFailed), the task was canceled before running (OnAborted), + or the task completed successfully (OnCompletedSuccessfully). Note that the last + one includes completing due to cancellation. + + The continuation options under evaluation. + True if the continuation should be run given the task's current state. + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + The that will be assigned to the new continuation task. + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Converts TaskContinuationOptions to TaskCreationOptions, and also does + some validity checking along the way. + + Incoming TaskContinuationOptions + Outgoing TaskCreationOptions + Outgoing InternalTaskOptions + + + + Registers the continuation and possibly runs it (if the task is already finished). + + The continuation task itself. + TaskScheduler with which to associate continuation task. + Restrictions on when the continuation becomes active. + + + + Waits for all of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + An array of instances on which to wait. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + A to observe while waiting for the tasks to complete. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The was canceled. + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for the tasks to complete. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + Waits for a set of handles in a STA-aware way. In other words, it will wait for each + of the events individually if we're on a STA thread, because MsgWaitForMultipleObjectsEx + can't do a true wait-all due to its hidden message queue event. This is not atomic, + of course, but we only wait on one-way (MRE) events anyway so this is OK. + + An array of wait handles to wait on. + The timeout to use during waits. + The cancellationToken that enables a wait to be canceled. + True if all waits succeeded, false if a timeout occurred. + + + + Internal WaitAll implementation which is meant to be used with small number of tasks, + optimized for Parallel.Invoke and other structured primitives. + + + + + This internal function is only meant to be called by WaitAll() + If the completed task is canceled or it has other exceptions, here we will add those + into the passed in exception list (which will be lazily initialized here). + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + The index of the completed task in the array argument. + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + A to observe while waiting for a task to complete. + + + The index of the completed task in the array argument. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + The was canceled. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for a task to complete. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + Gets a unique ID for this Task instance. + + + Task IDs are assigned on-demand and do not necessarily represent the order in the which Task + instances were created. + + + + + Returns the unique ID of the currently executing Task. + + + + + Gets the Task instance currently executing, or + null if none exists. + + + + + Gets the Exception that caused the Task to end prematurely. If the Task completed successfully or has not yet thrown any + exceptions, this will return null. + + + Tasks that throw unhandled exceptions store the resulting exception and propagate it wrapped in a + in calls to Wait + or in accesses to the property. Any exceptions not observed by the time + the Task instance is garbage collected will be propagated on the finalizer thread. + + + The Task + has been disposed. + + + + + Gets the TaskStatus of this Task. + + + + + Gets whether this Task instance has completed + execution due to being canceled. + + + A Task will complete in Canceled state either if its CancellationToken + was marked for cancellation before the task started executing, or if the task acknowledged the cancellation request on + its already signaled CancellationToken by throwing an + OperationCanceledException2 that bears the same + CancellationToken. + + + + + Returns true if this task has a cancellation token and it was signaled. + To be used internally in execute entry codepaths. + + + + + This internal property provides access to the CancellationToken that was set on the task + when it was constructed. + + + + + Gets whether this threw an OperationCanceledException2 while its CancellationToken was signaled. + + + + + Gets whether this Task has completed. + + + will return true when the Task is in one of the three + final states: RanToCompletion, + Faulted, or + Canceled. + + + + + Checks whether this task has been disposed. + + + + + Gets the TaskCreationOptions used + to create this task. + + + + + Gets a that can be used to wait for the task to + complete. + + + Using the wait functionality provided by + should be preferred over using for similar + functionality. + + + The has been disposed. + + + + + Gets the state object supplied when the Task was created, + or null if none was supplied. + + + + + Gets an indication of whether the asynchronous operation completed synchronously. + + true if the asynchronous operation completed synchronously; otherwise, false. + + + + Provides access to the TaskScheduler responsible for executing this Task. + + + + + Provides access to factory methods for creating and instances. + + + The factory returned from is a default instance + of , as would result from using + the default constructor on TaskFactory. + + + + + Provides an event that can be used to wait for completion. + Only called by Wait*(), which means that we really do need to instantiate a completion event. + + + + + Determines whether this is the root task of a self replicating group. + + + + + Determines whether the task is a replica itself. + + + + + The property formerly known as IsFaulted. + + + + + Gets whether the completed due to an unhandled exception. + + + If is true, the Task's will be equal to + TaskStatus.Faulted, and its + property will be non-null. + + + + + Checks whether the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag is set, + This will only be used by the implicit wait to prevent double throws + + + + + + Checks whether the body was ever invoked. Used by task scheduler code to verify custom schedulers actually ran the task. + + + + + A structure to hold continuation information. + + + + + Constructs a new continuation structure. + + The task to be activated. + The continuation options. + The scheduler to use for the continuation. + + + + Invokes the continuation for the target completion task. + + The completed task. + Whether the continuation can be inlined. + + + + Initializes a new with the specified function. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + + The argument is null. + + + + + Initializes a new with the specified function. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + The to be assigned to this task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified function and creation options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified function and creation options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified function and state. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the action. + + The argument is null. + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + The to be assigned to the new task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + The to be assigned to the new task. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Creates a new future object. + + The parent task for this future. + A function that yields the future value. + The task scheduler which will be used to execute the future. + The CancellationToken for the task. + Options to control the future's behavior. + Internal options to control the future's behavior. + The argument specifies + a SelfReplicating , which is illegal."/>. + + + + Creates a new future object. + + The parent task for this future. + An object containing data to be used by the action; may be null. + A function that yields the future value. + The CancellationToken for the task. + The task scheduler which will be used to execute the future. + Options to control the future's behavior. + Internal options to control the future's behavior. + The argument specifies + a SelfReplicating , which is illegal."/>. + + + + Evaluates the value selector of the Task which is passed in as an object and stores the result. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new task. + A new continuation . + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The , when executed, should return a . This task's completion state will be transferred to the task returned + from the ContinueWith call. + + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be passed as + an argument this completed task. + + The that will be assigned to the new task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The , when executed, should return a . + This task's completion state will be transferred to the task returned from the + ContinueWith call. + + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Gets the result value of this . + + + The get accessor for this property ensures that the asynchronous operation is complete before + returning. Once the result of the computation is available, it is stored and will be returned + immediately on later calls to . + + + + + Provides access to factory methods for creating instances. + + + The factory returned from is a default instance + of , as would result from using + the default constructor on the factory type. + + + + + Provides support for creating and scheduling + Task{TResult} objects. + + The type of the results that are available though + the Task{TResult} objects that are associated with + the methods in this class. + + + There are many common patterns for which tasks are relevant. The + class encodes some of these patterns into methods that pick up default settings, which are + configurable through its constructors. + + + A default instance of is available through the + Task{TResult}.Factory property. + + + + + + Initializes a instance with the default configuration. + + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the default configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The + TaskScheduler to use to schedule any tasks created with this TaskFactory{TResult}. A null value + indicates that the current TaskScheduler should be used. + + + With this constructor, the + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to , unless it's null, in which case the property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory{TResult}. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory{TResult}. + + + The exception that is thrown when the + argument or the + argument specifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory{TResult}. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory{TResult}. + + + The default + TaskScheduler to use to schedule any Tasks created with this TaskFactory{TResult}. A null value + indicates that TaskScheduler.Current should be used. + + + The exception that is thrown when the + argument or the + argumentspecifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to + , unless it's null, in which case the property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new task. + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The that will be assigned to the new task. + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Gets the default CancellationToken of this + TaskFactory. + + + This property returns the default that will be assigned to all + tasks created by this factory unless another CancellationToken value is explicitly specified + during the call to the factory methods. + + + + + Gets the TaskScheduler of this + TaskFactory{TResult}. + + + This property returns the default scheduler for this factory. It will be used to schedule all + tasks unless another scheduler is explicitly specified during calls to this factory's methods. + If null, TaskScheduler.Current + will be used. + + + + + Gets the TaskCreationOptions + value of this TaskFactory{TResult}. + + + This property returns the default creation options for this factory. They will be used to create all + tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Gets the TaskContinuationOptions + value of this TaskFactory{TResult}. + + + This property returns the default continuation options for this factory. They will be used to create + all continuation tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Represents the current stage in the lifecycle of a . + + + + + The task has been initialized but has not yet been scheduled. + + + + + The task is waiting to be activated and scheduled internally by the .NET Framework infrastructure. + + + + + The task has been scheduled for execution but has not yet begun executing. + + + + + The task is running but has not yet completed. + + + + + The task has finished executing and is implicitly waiting for + attached child tasks to complete. + + + + + The task completed execution successfully. + + + + + The task acknowledged cancellation by throwing an OperationCanceledException2 with its own CancellationToken + while the token was in signaled state, or the task's CancellationToken was already signaled before the + task started executing. + + + + + The task completed due to an unhandled exception. + + + + + Specifies flags that control optional behavior for the creation and execution of tasks. + + + + + Specifies that the default behavior should be used. + + + + + A hint to a TaskScheduler to schedule a + task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to + be run sooner, and tasks scheduled later will be more likely to be run later. + + + + + Specifies that a task will be a long-running, course-grained operation. It provides a hint to the + TaskScheduler that oversubscription may be + warranted. + + + + + Specifies that a task is attached to a parent in the task hierarchy. + + + + + Task creation flags which are only used internally. + + + + Specifies "No internal task options" + + + Used to filter out internal vs. public task creation options. + + + Specifies that the task will be queued by the runtime before handing it over to the user. + This flag will be used to skip the cancellationtoken registration step, which is only meant for unstarted tasks. + + + + Specifies flags that control optional behavior for the creation and execution of continuation tasks. + + + + + Default = "Continue on any, no task options, run asynchronously" + Specifies that the default behavior should be used. Continuations, by default, will + be scheduled when the antecedent task completes, regardless of the task's final TaskStatus. + + + + + A hint to a TaskScheduler to schedule a + task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to + be run sooner, and tasks scheduled later will be more likely to be run later. + + + + + Specifies that a task will be a long-running, course-grained operation. It provides + a hint to the TaskScheduler that + oversubscription may be warranted. + + + + + Specifies that a task is attached to a parent in the task hierarchy. + + + + + Specifies that the continuation task should not be scheduled if its antecedent ran to completion. + This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled + exception. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should not be scheduled if its antecedent was canceled. This + option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent ran to + completion. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent threw an + unhandled exception. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent was canceled. + This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be executed synchronously. With this option + specified, the continuation will be run on the same thread that causes the antecedent task to + transition into its final state. If the antecedent is already complete when the continuation is + created, the continuation will run on the thread creating the continuation. Only very + short-running continuations should be executed synchronously. + + + + + Represents an exception used to communicate task cancellation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the + class with a specified error message and a reference to the inner exception that is the cause of + this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + + Initializes a new instance of the class + with a reference to the that has been canceled. + + A task that has been canceled. + + + + Gets the task associated with this exception. + + + It is permissible for no Task to be associated with a + , in which case + this property will return null. + + + + + Represents the producer side of a unbound to a + delegate, providing access to the consumer side through the property. + + + + It is often the case that a is desired to + represent another asynchronous operation. + TaskCompletionSource is provided for this purpose. It enables + the creation of a task that can be handed out to consumers, and those consumers can use the members + of the task as they would any other. However, unlike most tasks, the state of a task created by a + TaskCompletionSource is controlled explicitly by the methods on TaskCompletionSource. This enables the + completion of the external asynchronous operation to be propagated to the underlying Task. The + separation also ensures that consumers are not able to transition the state without access to the + corresponding TaskCompletionSource. + + + All members of are thread-safe + and may be used from multiple threads concurrently. + + + The type of the result value assocatied with this . + + + + Creates a . + + + + + Creates a + with the specified options. + + + The created + by this instance and accessible through its property + will be instantiated using the specified . + + The options to use when creating the underlying + . + + The represent options invalid for use + with a . + + + + + Creates a + with the specified state. + + The state to use as the underlying + 's AsyncState. + + + + Creates a with + the specified state and options. + + The options to use when creating the underlying + . + The state to use as the underlying + 's AsyncState. + + The represent options invalid for use + with a . + + + + + Attempts to transition the underlying + into the + Faulted + state. + + The exception to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The argument is null. + The was disposed. + + + + Attempts to transition the underlying + into the + Faulted + state. + + The collection of exceptions to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The argument is null. + There are one or more null elements in . + The collection is empty. + The was disposed. + + + + Transitions the underlying + into the + Faulted + state. + + The exception to bind to this . + The argument is null. + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + Faulted + state. + + The collection of exceptions to bind to this . + The argument is null. + There are one or more null elements in . + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Attempts to transition the underlying + into the + RanToCompletion + state. + + The result value to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + RanToCompletion + state. + + The result value to bind to this . + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + Canceled + state. + + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Attempts to transition the underlying + into the + Canceled + state. + + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Gets the created + by this . + + + This property enables a consumer access to the that is controlled by this instance. + The , , + , and + methods (and their "Try" variants) on this instance all result in the relevant state + transitions on this underlying Task. + + + + + An exception holder manages a list of exceptions for one particular task. + It offers the ability to aggregate, but more importantly, also offers intrinsic + support for propagating unhandled exceptions that are never observed. It does + this by aggregating and throwing if the holder is ever GC'd without the holder's + contents ever having been requested (e.g. by a Task.Wait, Task.get_Exception, etc). + + + + + Creates a new holder; it will be registered for finalization. + + The task this holder belongs to. + + + + A finalizer that repropagates unhandled exceptions. + + + + + Add an exception to the internal list. This will ensure the holder is + in the proper state (handled/unhandled) depending on the list's contents. + + An exception object (either an Exception or an + IEnumerable{Exception}) to add to the list. + + + + A private helper method that ensures the holder is considered + unhandled, i.e. it is registered for finalization. + + + + + A private helper method that ensures the holder is considered + handled, i.e. it is not registered for finalization. + + Whether this is called from the finalizer thread. + + + + Allocates a new aggregate exception and adds the contents of the list to + it. By calling this method, the holder assumes exceptions to have been + "observed", such that the finalization check will be subsequently skipped. + + Whether this is being called from a finalizer. + An extra exception to be included (optionally). + The aggregate exception to throw. + + + + Provides a set of static (Shared in Visual Basic) methods for working with specific kinds of + instances. + + + + + Creates a proxy Task that represents the + asynchronous operation of a Task{Task}. + + + It is often useful to be able to return a Task from a + Task{TResult}, where the inner Task represents work done as part of the outer Task{TResult}. However, + doing so results in a Task{Task}, which, if not dealt with carefully, could produce unexpected behavior. Unwrap + solves this problem by creating a proxy Task that represents the entire asynchronous operation of such a Task{Task}. + + The Task{Task} to unwrap. + The exception that is thrown if the + argument is null. + A Task that represents the asynchronous operation of the provided Task{Task}. + + + + Creates a proxy Task{TResult} that represents the + asynchronous operation of a Task{Task{TResult}}. + + + It is often useful to be able to return a Task{TResult} from a Task{TResult}, where the inner Task{TResult} + represents work done as part of the outer Task{TResult}. However, doing so results in a Task{Task{TResult}}, + which, if not dealt with carefully, could produce unexpected behavior. Unwrap solves this problem by + creating a proxy Task{TResult} that represents the entire asynchronous operation of such a Task{Task{TResult}}. + + The Task{Task{TResult}} to unwrap. + The exception that is thrown if the + argument is null. + A Task{TResult} that represents the asynchronous operation of the provided Task{Task{TResult}}. /// Unwraps a Task that returns another Task. + + + + Provides support for creating and scheduling + Tasks. + + + + There are many common patterns for which tasks are relevant. The + class encodes some of these patterns into methods that pick up default settings, which are + configurable through its constructors. + + + A default instance of is available through the + Task.Factory property. + + + + + + Initializes a instance with the default configuration. + + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The + TaskScheduler to use to schedule any tasks created with this TaskFactory. A null value + indicates that the current TaskScheduler should be used. + + + With this constructor, the + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to , unless it's null, in which case the property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory. + + + The exception that is thrown when the + argument or the + argument specifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory. + + + The default + TaskScheduler to use to schedule any Tasks created with this TaskFactory. A null value + indicates that TaskScheduler.Current should be used. + + + The exception that is thrown when the + argument or the + argumentspecifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to + , unless it's null, in which case the property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The started Task. + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors + and then calling + Start to schedule it for execution. However, + unless creation and scheduling must be separated, StartNew is the recommended + approach for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The that will be assigned to the new task. + The started Task. + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors + and then calling + Start to schedule it for execution. However, + unless creation and scheduling must be separated, StartNew is the recommended + approach for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The that will be assigned to the new + A TaskCreationOptions value that controls the behavior of the + created + Task. + The TaskScheduler + that is used to schedule the created Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The started Task. + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The that will be assigned to the new + The started Task. + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The TaskScheduler + that is used to schedule the created Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the asynchronous + operation. + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the asynchronous + operation. + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the asynchronous + operation. + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Check validity of options passed to FromAsync method + + The options to be validated. + determines type of FromAsync method that called this method + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Gets the default CancellationToken of this + TaskFactory. + + + This property returns the default that will be assigned to all + tasks created by this factory unless another CancellationToken value is explicitly specified + during the call to the factory methods. + + + + + Gets the TaskScheduler of this + TaskFactory. + + + This property returns the default scheduler for this factory. It will be used to schedule all + tasks unless another scheduler is explicitly specified during calls to this factory's methods. + If null, TaskScheduler.Current + will be used. + + + + + Gets the TaskCreationOptions + value of this TaskFactory. + + + This property returns the default creation options for this factory. They will be used to create all + tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Gets the TaskContinuationOptions + value of this TaskFactory. + + + This property returns the default continuation options for this factory. They will be used to create + all continuation tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Represents an abstract scheduler for tasks. + + + + TaskScheduler acts as the extension point for all + pluggable scheduling logic. This includes mechanisms such as how to schedule a task for execution, and + how scheduled tasks should be exposed to debuggers. + + + All members of the abstract type are thread-safe + and may be used from multiple threads concurrently. + + + + + + Queues a Task to the scheduler. + + + + A class derived from TaskScheduler + implements this method to accept tasks being scheduled on the scheduler. + A typical implementation would store the task in an internal data structure, which would + be serviced by threads that would execute those tasks at some time in the future. + + + This method is only meant to be called by the .NET Framework and + should not be called directly by the derived class. This is necessary + for maintaining the consistency of the system. + + + The Task to be queued. + The argument is null. + + + + Determines whether the provided Task + can be executed synchronously in this call, and if it can, executes it. + + + + A class derived from TaskScheduler implements this function to + support inline execution of a task on a thread that initiates a wait on that task object. Inline + execution is optional, and the request may be rejected by returning false. However, better + scalability typically results the more tasks that can be inlined, and in fact a scheduler that + inlines too little may be prone to deadlocks. A proper implementation should ensure that a + request executing under the policies guaranteed by the scheduler can successfully inline. For + example, if a scheduler uses a dedicated thread to execute tasks, any inlining requests from that + thread should succeed. + + + If a scheduler decides to perform the inline execution, it should do so by calling to the base + TaskScheduler's + TryExecuteTask method with the provided task object, propagating + the return value. It may also be appropriate for the scheduler to remove an inlined task from its + internal data structures if it decides to honor the inlining request. Note, however, that under + some circumstances a scheduler may be asked to inline a task that was not previously provided to + it with the method. + + + The derived scheduler is responsible for making sure that the calling thread is suitable for + executing the given task as far as its own scheduling and execution policies are concerned. + + + The Task to be + executed. + A Boolean denoting whether or not task has previously been + queued. If this parameter is True, then the task may have been previously queued (scheduled); if + False, then the task is known not to have been queued, and this call is being made in order to + execute the task inline without queueing it. + A Boolean value indicating whether the task was executed inline. + The argument is + null. + The was already + executed. + + + + Generates an enumerable of Task instances + currently queued to the scheduler waiting to be executed. + + + + A class derived from implements this method in order to support + integration with debuggers. This method will only be invoked by the .NET Framework when the + debugger requests access to the data. The enumerable returned will be traversed by debugging + utilities to access the tasks currently queued to this scheduler, enabling the debugger to + provide a representation of this information in the user interface. + + + It is important to note that, when this method is called, all other threads in the process will + be frozen. Therefore, it's important to avoid synchronization with other threads that may lead to + blocking. If synchronization is necessary, the method should prefer to throw a + than to block, which could cause a debugger to experience delays. Additionally, this method and + the enumerable returned must not modify any globally visible state. + + + The returned enumerable should never be null. If there are currently no queued tasks, an empty + enumerable should be returned instead. + + + For developers implementing a custom debugger, this method shouldn't be called directly, but + rather this functionality should be accessed through the internal wrapper method + GetScheduledTasksForDebugger: + internal Task[] GetScheduledTasksForDebugger(). This method returns an array of tasks, + rather than an enumerable. In order to retrieve a list of active schedulers, a debugger may use + another internal method: internal static TaskScheduler[] GetTaskSchedulersForDebugger(). + This static method returns an array of all active TaskScheduler instances. + GetScheduledTasksForDebugger then may be used on each of these scheduler instances to retrieve + the list of scheduled tasks for each. + + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + This scheduler is unable to generate a list of queued tasks at this time. + + + + + Retrieves some thread static state that can be cached and passed to multiple + TryRunInline calls, avoiding superflous TLS fetches. + + A bag of TLS state (or null if none exists). + + + + Attempts to execute the target task synchronously. + + The task to run. + True if the task may have been previously queued, + false if the task was absolutely not previously queued. + The state retrieved from GetThreadStatics + True if it ran, false otherwise. + + + + Attempts to dequeue a Task that was previously queued to + this scheduler. + + The Task to be dequeued. + A Boolean denoting whether the argument was successfully dequeued. + The argument is null. + + + + Notifies the scheduler that a work item has made progress. + + + + + Initializes the . + + + + + Frees all resources associated with this scheduler. + + + + + Creates a + associated with the current . + + + All Task instances queued to + the returned scheduler will be executed through a call to the + Post method + on that context. + + + A associated with + the current SynchronizationContext, as + determined by SynchronizationContext.Current. + + + The current SynchronizationContext may not be used as a TaskScheduler. + + + + + Attempts to execute the provided Task + on this scheduler. + + + + Scheduler implementations are provided with Task + instances to be executed through either the method or the + method. When the scheduler deems it appropriate to run the + provided task, should be used to do so. TryExecuteTask handles all + aspects of executing a task, including action invocation, exception handling, state management, + and lifecycle control. + + + must only be used for tasks provided to this scheduler by the .NET + Framework infrastructure. It should not be used to execute arbitrary tasks obtained through + custom mechanisms. + + + + A Task object to be executed. + + The is not associated with this scheduler. + + A Boolean that is true if was successfully executed, false if it + was not. A common reason for execution failure is that the task had previously been executed or + is in the process of being executed by another thread. + + + + Provides an array of all queued Task instances + for the debugger. + + + The returned array is populated through a call to . + Note that this function is only meant to be invoked by a debugger remotely. + It should not be called by any other codepaths. + + An array of Task instances. + + This scheduler is unable to generate a list of queued tasks at this time. + + + + + Provides an array of all active TaskScheduler + instances for the debugger. + + + This function is only meant to be invoked by a debugger remotely. + It should not be called by any other codepaths. + + An array of TaskScheduler instances. + + + + Registers a new TaskScheduler instance in the global collection of schedulers. + + + + + Removes a TaskScheduler instance from the global collection of schedulers. + + + + + Indicates the maximum concurrency level this + is able to support. + + + + + Indicates whether this is a custom scheduler, in which case the safe code paths will be taken upon task entry + using a CAS to transition from queued state to executing. + + + + + Gets the default TaskScheduler instance. + + + + + Gets the TaskScheduler + associated with the currently executing task. + + + When not called from within a task, will return the scheduler. + + + + + Gets the unique ID for this . + + + + + Occurs when a faulted 's unobserved exception is about to trigger exception escalation + policy, which, by default, would terminate the process. + + + This AppDomain-wide event provides a mechanism to prevent exception + escalation policy (which, by default, terminates the process) from triggering. + Each handler is passed a + instance, which may be used to examine the exception and to mark it as observed. + + + + + Nested class that provides debugger view for TaskScheduler + + + + Default thread pool scheduler. + + + + A TaskScheduler implementation that executes all tasks queued to it through a call to + on the + that its associated with. The default constructor for this class binds to the current + + + + + Constructs a SynchronizationContextTaskScheduler associated with + + This constructor expects to be set. + + + + Implemetation of for this scheduler class. + + Simply posts the tasks to be executed on the associated . + + + + + + Implementation of for this scheduler class. + + The task will be executed inline only if the call happens within + the associated . + + + + + + + Implementes the property for + this scheduler class. + + By default it returns 1, because a based + scheduler only supports execution on a single thread. + + + + + Provides data for the event that is raised when a faulted 's + exception goes unobserved. + + + The Exception property is used to examine the exception without marking it + as observed, whereas the method is used to mark the exception + as observed. Marking the exception as observed prevents it from triggering exception escalation policy + which, by default, terminates the process. + + + + + Initializes a new instance of the class + with the unobserved exception. + + The Exception that has gone unobserved. + + + + Marks the as "observed," thus preventing it + from triggering exception escalation policy which, by default, terminates the process. + + + + + Gets whether this exception has been marked as "observed." + + + + + The Exception that went unobserved. + + + + + Represents an exception used to communicate an invalid operation by a + . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the + class using the default error message and a reference to the inner exception that is the cause of + this exception. + + The exception that is the cause of the current exception. + + + + Initializes a new instance of the + class with a specified error message and a reference to the inner exception that is the cause of + this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/ensureRedirect.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp71+wpa81/ensureRedirect.xml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.IO.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.IO.dll new file mode 100644 index 0000000000000000000000000000000000000000..32dd41b780e3abf07d8bcbf35ba532ffc8d4618c GIT binary patch literal 22672 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.IO.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.IO.xml new file mode 100644 index 000000000..e83273427 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.IO.xml @@ -0,0 +1,51 @@ + + + + System.IO + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Found invalid data while decoding.. + + + + + The exception that is thrown when a data stream is in an invalid format. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Runtime.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..118fcce204348879c199c5ebba06751972f7f298 GIT binary patch literal 22176 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Runtime.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Runtime.xml new file mode 100644 index 000000000..93cb00d74 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Runtime.xml @@ -0,0 +1,56 @@ + + + + System.Runtime + + + + Defines a provider for progress updates. + The type of progress update value. + + + Reports a progress update. + The value of the updated progress. + + + Identities the async state machine type for this method. + + + Identities the state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + Gets the type that implements the state machine. + + + Initializes the attribute. + The type that implements the state machine. + + + + Allows you to obtain the method or property name of the caller to the method. + + + + + Allows you to obtain the line number in the source file at which the method is called. + + + + + Allows you to obtain the full path of the source file that contains the caller. + This is the file path at the time of compile. + + + + Identities the iterator state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Threading.Tasks.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..a089d474db56cd4f61044339689819946c04e381 GIT binary patch literal 164544 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Threading.Tasks.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Threading.Tasks.xml new file mode 100644 index 000000000..6c770122e --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/System.Threading.Tasks.xml @@ -0,0 +1,8969 @@ + + + + System.Threading.Tasks + + + + Represents one or more errors that occur during application execution. + + is used to consolidate multiple failures into a single, throwable + exception object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with + a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error + message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + The argument + is null. + + + + Initializes a new instance of the class with + references to the inner exceptions that are the cause of this exception. + + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with + references to the inner exceptions that are the cause of this exception. + + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with a specified error + message and references to the inner exceptions that are the cause of this exception. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with a specified error + message and references to the inner exceptions that are the cause of this exception. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Allocates a new aggregate exception with the specified message and list of inner exceptions. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Returns the that is the root cause of this exception. + + + + + Invokes a handler on each contained by this . + + The predicate to execute for each exception. The predicate accepts as an + argument the to be processed and returns a Boolean to indicate + whether the exception was handled. + + Each invocation of the returns true or false to indicate whether the + was handled. After all invocations, if any exceptions went + unhandled, all unhandled exceptions will be put into a new + which will be thrown. Otherwise, the method simply returns. If any + invocations of the throws an exception, it will halt the processing + of any more exceptions and immediately propagate the thrown exception as-is. + + An exception contained by this was not handled. + The argument is + null. + + + + Flattens an instances into a single, new instance. + + A new, flattened . + + If any inner exceptions are themselves instances of + , this method will recursively flatten all of them. The + inner exceptions returned in the new + will be the union of all of the the inner exceptions from exception tree rooted at the provided + instance. + + + + + Creates and returns a string representation of the current . + + A string representation of the current exception. + + + + Gets a read-only collection of the instances that caused the + current exception. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to One or more errors occurred.. + + + + + Looks up a localized string similar to An element of innerExceptions was null.. + + + + + Looks up a localized string similar to {0}{1}---> (Inner Exception #{2}) {3}{4}{5}. + + + + + Looks up a localized string similar to No tokens were supplied.. + + + + + Looks up a localized string similar to The CancellationTokenSource associated with this CancellationToken has been disposed.. + + + + + Looks up a localized string similar to The CancellationTokenSource has been disposed.. + + + + + Looks up a localized string similar to The SyncRoot property may not be used for the synchronization of concurrent collections.. + + + + + Looks up a localized string similar to The array is multidimensional, or the type parameter for the set cannot be cast automatically to the type of the destination array.. + + + + + Looks up a localized string similar to The index is equal to or greater than the length of the array, or the number of elements in the dictionary is greater than the available space from index to the end of the destination array.. + + + + + Looks up a localized string similar to The capacity argument must be greater than or equal to zero.. + + + + + Looks up a localized string similar to The concurrencyLevel argument must be positive.. + + + + + Looks up a localized string similar to The index argument is less than zero.. + + + + + Looks up a localized string similar to TKey is a reference type and item.Key is null.. + + + + + Looks up a localized string similar to The key already existed in the dictionary.. + + + + + Looks up a localized string similar to The source argument contains duplicate keys.. + + + + + Looks up a localized string similar to The key was of an incorrect type for this dictionary.. + + + + + Looks up a localized string similar to The value was of an incorrect type for this dictionary.. + + + + + Looks up a localized string similar to The lazily-initialized type does not have a public, parameterless constructor.. + + + + + Looks up a localized string similar to ValueFactory returned null.. + + + + + Looks up a localized string similar to The spinCount argument must be in the range 0 to {0}, inclusive.. + + + + + Looks up a localized string similar to There are too many threads currently waiting on the event. A maximum of {0} waiting threads are supported.. + + + + + Looks up a localized string similar to The event has been disposed.. + + + + + Looks up a localized string similar to The operation was canceled.. + + + + + Looks up a localized string similar to The condition argument is null.. + + + + + Looks up a localized string similar to The timeout must represent a value between -1 and Int32.MaxValue, inclusive.. + + + + + Looks up a localized string similar to The specified TaskContinuationOptions combined LongRunning and ExecuteSynchronously. Synchronous continuations should not be long running.. + + + + + Looks up a localized string similar to The specified TaskContinuationOptions excluded all continuation kinds.. + + + + + Looks up a localized string similar to (Internal)An attempt was made to create a LongRunning SelfReplicating task.. + + + + + Looks up a localized string similar to The value needs to translate in milliseconds to -1 (signifying an infinite timeout), 0 or a positive integer less than or equal to Int32.MaxValue.. + + + + + Looks up a localized string similar to The value needs to be either -1 (signifying an infinite timeout), 0 or a positive integer.. + + + + + Looks up a localized string similar to A task may only be disposed if it is in a completion state (RanToCompletion, Faulted or Canceled).. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.LongRunning in calls to FromAsync.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.PreferFairness in calls to FromAsync.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.SelfReplicating in calls to FromAsync.. + + + + + Looks up a localized string similar to FromAsync was called with a TaskManager that had already shut down.. + + + + + Looks up a localized string similar to The tasks argument contains no tasks.. + + + + + Looks up a localized string similar to It is invalid to exclude specific continuation kinds for continuations off of multiple tasks.. + + + + + Looks up a localized string similar to The tasks argument included a null value.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task that was already started.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a continuation task.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task not bound to a delegate, such as the task returned from an asynchronous method.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task that has already completed.. + + + + + Looks up a localized string similar to Start may not be called on a task that was already started.. + + + + + Looks up a localized string similar to Start may not be called on a continuation task.. + + + + + Looks up a localized string similar to Start may not be called on a task with null action.. + + + + + Looks up a localized string similar to Start may not be called on a promise-style task.. + + + + + Looks up a localized string similar to Start may not be called on a task that has completed.. + + + + + Looks up a localized string similar to The task has been disposed.. + + + + + Looks up a localized string similar to The tasks array included at least one null element.. + + + + + Looks up a localized string similar to The awaited task has not yet completed.. + + + + + Looks up a localized string similar to A task was canceled.. + + + + + Looks up a localized string similar to The exceptions collection was empty.. + + + + + Looks up a localized string similar to The exceptions collection included at least one null element.. + + + + + Looks up a localized string similar to A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.. + + + + + Looks up a localized string similar to (Internal)Expected an Exception or an IEnumerable<Exception>. + + + + + Looks up a localized string similar to ExecuteTask may not be called for a task which was already executed.. + + + + + Looks up a localized string similar to ExecuteTask may not be called for a task which was previously queued to a different TaskScheduler.. + + + + + Looks up a localized string similar to The current SynchronizationContext may not be used as a TaskScheduler.. + + + + + Looks up a localized string similar to The TryExecuteTaskInline call to the underlying scheduler succeeded, but the task body was not invoked.. + + + + + Looks up a localized string similar to An exception was thrown by a TaskScheduler.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.SelfReplicating for a Task<TResult>.. + + + + + Looks up a localized string similar to {Not yet computed}. + + + + + Looks up a localized string similar to A task's Exception may only be set directly if the task was created without a function.. + + + + + Looks up a localized string similar to An attempt was made to transition a task to a final state when it had already completed.. + + + + + Represents a thread-safe collection of keys and values. + + The type of the keys in the dictionary. + The type of the values in the dictionary. + + All public and protected members of are thread-safe and may be used + concurrently from multiple threads. + + + + + Initializes a new instance of the + class that is empty, has the default concurrency level, has the default initial capacity, and + uses the default comparer for the key type. + + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level and capacity, and uses the default + comparer for the key type. + + The estimated number of threads that will update the + concurrently. + The initial number of elements that the + can contain. + is + less than 1. + is less than + 0. + + + + Initializes a new instance of the + class that contains elements copied from the specified , has the default concurrency + level, has the default initial capacity, and uses the default comparer for the key type. + + The whose elements are copied to + the new + . + is a null reference + (Nothing in Visual Basic). + contains one or more + duplicate keys. + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level and capacity, and uses the specified + . + + The + implementation to use when comparing keys. + is a null reference + (Nothing in Visual Basic). + + + + Initializes a new instance of the + class that contains elements copied from the specified , has the default concurrency level, has the default + initial capacity, and uses the specified + . + + The whose elements are copied to + the new + . + The + implementation to use when comparing keys. + is a null reference + (Nothing in Visual Basic). -or- + is a null reference (Nothing in Visual Basic). + + + + + Initializes a new instance of the + class that contains elements copied from the specified , + has the specified concurrency level, has the specified initial capacity, and uses the specified + . + + The estimated number of threads that will update the + concurrently. + The whose elements are copied to the new + . + The implementation to use + when comparing keys. + + is a null reference (Nothing in Visual Basic). + -or- + is a null reference (Nothing in Visual Basic). + + + is less than 1. + + contains one or more duplicate keys. + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level, has the specified initial capacity, and + uses the specified . + + The estimated number of threads that will update the + concurrently. + The initial number of elements that the + can contain. + The + implementation to use when comparing keys. + + is less than 1. -or- + is less than 0. + + is a null reference + (Nothing in Visual Basic). + + + + Attempts to add the specified key and value to the . + + The key of the element to add. + The value of the element to add. The value can be a null reference (Nothing + in Visual Basic) for reference types. + true if the key/value pair was added to the + successfully; otherwise, false. + is null reference + (Nothing in Visual Basic). + The + contains too many elements. + + + + Determines whether the contains the specified + key. + + The key to locate in the . + true if the contains an element with + the specified key; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Attempts to remove and return the the value with the specified key from the + . + + The key of the element to remove and return. + When this method returns, contains the object removed from the + or the default value of + if the operation failed. + true if an object was removed successfully; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Removes the specified key from the dictionary if it exists and returns its associated value. + If matchValue flag is set, the key will be removed only if is associated with a particular + value. + + The key to search for and remove if it exists. + The variable into which the removed value, if found, is stored. + Whether removal of the key is conditional on its value. + The conditional value to compare against if is true + + + + + Attempts to get the value associated with the specified key from the . + + The key of the value to get. + When this method returns, contains the object from + the + with the spedified key or the default value of + , if the operation failed. + true if the key was found in the ; + otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Compares the existing value for the specified key with a specified value, and if they’re equal, + updates the key with a third value. + + The key whose value is compared with and + possibly replaced. + The value that replaces the value of the element with if the comparison results in equality. + The value that is compared to the value of the element with + . + true if the value with was equal to and replaced with ; otherwise, + false. + is a null + reference. + + + + Removes all keys and values from the . + + + + + Copies the elements of the to an array of + type , starting at the + specified array index. + + The one-dimensional array of type + that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying + begins. + is a null reference + (Nothing in Visual Basic). + is less than + 0. + is equal to or greater than + the length of the . -or- The number of elements in the source + is greater than the available space from to the end of the destination + . + + + + Copies the key and value pairs stored in the to a + new array. + + A new array containing a snapshot of key and value pairs copied from the . + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToPairs. + + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToEntries. + + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToObjects. + + + + Returns an enumerator that iterates through the . + An enumerator for the . + + The enumerator returned from the dictionary is safe to use concurrently with + reads and writes to the dictionary, however it does not represent a moment-in-time snapshot + of the dictionary. The contents exposed through the enumerator may contain modifications + made to the dictionary after was called. + + + + + Shared internal implementation for inserts and updates. + If key exists, we always return false; and if updateIfExists == true we force update with value; + If key doesn't exist, we always add value and return true; + + + + + Adds a key/value pair to the + if the key does not already exist. + + The key of the element to add. + The function used to generate a value for the key + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The value for the key. This will be either the existing value for the key if the + key is already in the dictionary, or the new value for the key as returned by valueFactory + if the key was not in the dictionary. + + + + Adds a key/value pair to the + if the key does not already exist. + + The key of the element to add. + the value to be added, if the key does not already exist + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The value for the key. This will be either the existing value for the key if the + key is already in the dictionary, or the new value if the key was not in the dictionary. + + + + Adds a key/value pair to the if the key does not already + exist, or updates a key/value pair in the if the key + already exists. + + The key to be added or whose value should be updated + The function used to generate a value for an absent key + The function used to generate a new value for an existing key + based on the key's existing value + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The new value for the key. This will be either be the result of addValueFactory (if the key was + absent) or the result of updateValueFactory (if the key was present). + + + + Adds a key/value pair to the if the key does not already + exist, or updates a key/value pair in the if the key + already exists. + + The key to be added or whose value should be updated + The value to be added for an absent key + The function used to generate a new value for an existing key based on + the key's existing value + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The new value for the key. This will be either be the result of addValueFactory (if the key was + absent) or the result of updateValueFactory (if the key was present). + + + + Adds the specified key and value to the . + + The object to use as the key of the element to add. + The object to use as the value of the element to add. + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + + An element with the same key already exists in the . + + + + Removes the element with the specified key from the . + + The key of the element to remove. + true if the element is successfully remove; otherwise false. This method also returns + false if + was not found in the original . + + is a null reference + (Nothing in Visual Basic). + + + + Adds the specified value to the + with the specified key. + + The + structure representing the key and value to add to the . + The of is null. + The + contains too many elements. + An element with the same key already exists in the + + + + + Determines whether the + contains a specific key and value. + + The + structure to locate in the . + true if the is found in the ; otherwise, false. + + + + Removes a key and value from the dictionary. + + The + structure representing the key and value to remove from the . + true if the key and value represented by is successfully + found and removed; otherwise, false. + The Key property of is a null reference (Nothing in Visual Basic). + + + Returns an enumerator that iterates through the . + An enumerator for the . + + The enumerator returned from the dictionary is safe to use concurrently with + reads and writes to the dictionary, however it does not represent a moment-in-time snapshot + of the dictionary. The contents exposed through the enumerator may contain modifications + made to the dictionary after was called. + + + + + Adds the specified key and value to the dictionary. + + The object to use as the key. + The object to use as the value. + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + + is of a type that is not assignable to the key type of the . -or- + is of a type that is not assignable to , + the type of values in the . + -or- A value with the same key already exists in the . + + + + + Gets whether the contains an + element with the specified key. + + The key to locate in the . + true if the contains + an element with the specified key; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + Provides an for the + . + An for the . + + + + Removes the element with the specified key from the . + + The key of the element to remove. + is a null reference + (Nothing in Visual Basic). + + + + Copies the elements of the to an array, starting + at the specified array index. + + The one-dimensional array that is the destination of the elements copied from + the . The array must have zero-based + indexing. + The zero-based index in at which copying + begins. + is a null reference + (Nothing in Visual Basic). + is less than + 0. + is equal to or greater than + the length of the . -or- The number of elements in the source + is greater than the available space from to the end of the destination + . + + + + Replaces the internal table with a larger one. To prevent multiple threads from resizing the + table as a result of races, the table of buckets that was deemed too small is passed in as + an argument to GrowTable(). GrowTable() obtains a lock, and then checks whether the bucket + table has been replaced in the meantime or not. + + Reference to the bucket table that was deemed too small. + + + + Computes the bucket and lock number for a particular key. + + + + + Acquires all locks for this hash table, and increments locksAcquired by the number + of locks that were successfully acquired. The locks are acquired in an increasing + order. + + + + + Acquires a contiguous range of locks for this hash table, and increments locksAcquired + by the number of locks that were successfully acquired. The locks are acquired in an + increasing order. + + + + + Releases a contiguous range of locks. + + + + + Gets a collection containing the keys in the dictionary. + + + + + Gets a collection containing the values in the dictionary. + + + + + A helper method for asserts. + + + + + Get the data array to be serialized + + + + + Construct the dictionary from a previously seiralized one + + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The value associated with the specified key. If the specified key is not found, a get + operation throws a + , and a set operation creates a new + element with the specified key. + is a null reference + (Nothing in Visual Basic). + The property is retrieved and + + does not exist in the collection. + + + + Gets the number of key/value pairs contained in the . + + The dictionary contains too many + elements. + The number of key/value paris contained in the . + Count has snapshot semantics and represents the number of items in the + at the moment when Count was accessed. + + + + Gets a value that indicates whether the is empty. + + true if the is empty; otherwise, + false. + + + + Gets a collection containing the keys in the . + + An containing the keys in the + . + + + + Gets a collection containing the values in the . + + An containing the values in + the + . + + + + Gets a value indicating whether the dictionary is read-only. + + true if the is + read-only; otherwise, false. For , this property always returns + false. + + + + Gets a value indicating whether the has a fixed size. + + true if the has a + fixed size; otherwise, false. For , this property always + returns false. + + + + Gets a value indicating whether the is read-only. + + true if the is + read-only; otherwise, false. For , this property always + returns false. + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + + Gets an containing the values in the . + + An containing the values in the . + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The value associated with the specified key, or a null reference (Nothing in Visual Basic) + if is not in the dictionary or is of a type that is + not assignable to the key type of the . + is a null reference + (Nothing in Visual Basic). + + A value is being assigned, and is of a type that is not assignable to the + key type of the . -or- A value is being + assigned, and is of a type that is not assignable to the value type + of the + + + + + Gets a value indicating whether access to the is + synchronized with the SyncRoot. + + true if access to the is synchronized + (thread safe); otherwise, false. For , this property always + returns false. + + + + Gets an object that can be used to synchronize access to the . This property is not supported. + + The SyncRoot property is not supported. + + + + The number of concurrent writes for which to optimize by default. + + + + + A node in a singly-linked list representing a particular hash table bucket. + + + + + A private class to represent enumeration over the dictionary that implements the + IDictionaryEnumerator interface. + + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + Represents an asynchronous method builder. + + + A cached VoidTaskResult task used for builders that complete synchronously. + + + The generic builder object to which this non-generic instance delegates. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state. + + The builder is not initialized. + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + + Gets the for this builder. + The representing the builder's asynchronous operation. + The builder is not initialized. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + Holds state related to the builder's IAsyncStateMachine. + This is a mutable struct. Be very delicate with it. + + + A reference to the heap-allocated state machine object associated with this builder. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument is null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + + Gets the Action to use with an awaiter's OnCompleted or UnsafeOnCompleted method. + On first invocation, the supplied state machine will be boxed. + + Specifies the type of the method builder used. + Specifies the type of the state machine used. + The builder. + The state machine. + An Action to provide to the awaiter. + + + Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext. + + + The context with which to run MoveNext. + + + The state machine whose MoveNext method should be invoked. + + + Initializes the runner. + The context with which to run MoveNext. + + + Invokes MoveNext under the provided context. + + + Cached delegate used with ExecutionContext.Run. + + + Invokes the MoveNext method on the supplied IAsyncStateMachine. + The IAsyncStateMachine machine instance. + + + + Provides a builder for asynchronous methods that return void. + This type is intended for compiler use only. + + + + The synchronization context associated with this operation. + + + State related to the IAsyncStateMachine. + + + An object used by the debugger to uniquely identify this builder. Lazily initialized. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Registers with UnobservedTaskException to suppress exception crashing. + + + Non-zero if PreventUnobservedTaskExceptions has already been invoked. + + + Initializes a new . + The initialized . + + + Initializes the . + The synchronizationContext associated with this operation. This may be null. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument was null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + Completes the method builder successfully. + + + Faults the method builder with an exception. + The exception that is the cause of this fault. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + + + Notifies the current synchronization context that the operation completed. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger and only in a single-threaded manner. + + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder{TResult} is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + A cached task for default(TResult). + + + State related to the IAsyncStateMachine. + + + The lazily-initialized task. + Must be named m_task for debugger step-over to work correctly. + + + The lazily-initialized task completion source. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state with the specified result. + + The result to use to complete the task. + The task has already completed. + + + + Completes the builder by using either the supplied completed task, or by completing + the builder's previously accessed task using default(TResult). + + A task already completed with the value default(TResult). + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + This should only be invoked from within an asynchronous method, + and only by the debugger. + + + + + Gets a task for the specified result. This will either + be a cached or new task, never null. + + The result for which we need a task. + The completed task containing the result. + + + Gets the lazily-initialized TaskCompletionSource. + + + Gets the for this builder. + The representing the builder's asynchronous operation. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + Provides a base class used to cache tasks of a specific return type. + Specifies the type of results the cached tasks return. + + + + A singleton cache for this result type. + This may be null if there are no cached tasks for this TResult. + + + + Creates a non-disposable task. + The result for the task. + The cacheable task. + + + Creates a cache. + A task cache for this result type. + + + Gets a cached task if one exists. + The result for which we want a cached task. + A cached task if one exists; otherwise, null. + + + Provides a cache for Boolean tasks. + + + A true task. + + + A false task. + + + Gets a cached task for the Boolean result. + true or false + A cached task for the Boolean result. + + + Provides a cache for zero Int32 tasks. + + + The minimum value, inclusive, for which we want a cached task. + + + The maximum value, exclusive, for which we want a cached task. + + + The cache of Task{Int32}. + + + Creates an array of cached tasks for the values in the range [INCLUSIVE_MIN,EXCLUSIVE_MAX). + + + Gets a cached task for the zero Int32 result. + The integer value + A cached task for the Int32 result or null if not cached. + + + + Represents state machines generated for asynchronous methods. + This type is intended for compiler use only. + + + + Moves the state machine to its next state. + + + Configures the state machine with a heap-allocated replica. + The heap-allocated replica. + + + + Represents an awaiter used to schedule continuations when an await operation completes. + + + + + Represents an operation that will schedule continuations when the operation completes. + + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + Unlike OnCompleted, UnsafeOnCompleted need not propagate ExecutionContext information. + + + Used with Task(of void) + + + + An interface similar to the one added in .NET 4.0. + + + + The exception that is thrown in a thread upon cancellation of an operation that the thread was executing. + + + Initializes the exception. + + + Initializes the exception. + The error message that explains the reason for the exception. + + + Initializes the exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + Initializes the exception. + A cancellation token associated with the operation that was canceled. + + + Initializes the exception. + The error message that explains the reason for the exception. + A cancellation token associated with the operation that was canceled. + + + Initializes the exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + A cancellation token associated with the operation that was canceled. + + + Gets a token associated with the operation that was canceled. + + + + A dummy replacement for the .NET internal class StackCrawlMark. + + + + + Propogates notification that operations should be canceled. + + + + A may be created directly in an unchangeable canceled or non-canceled state + using the CancellationToken's constructors. However, to have a CancellationToken that can change + from a non-canceled to a canceled state, + CancellationTokenSource must be used. + CancellationTokenSource exposes the associated CancellationToken that may be canceled by the source through its + Token property. + + + Once canceled, a token may not transition to a non-canceled state, and a token whose + is false will never change to one that can be canceled. + + + All members of this struct are thread-safe and may be used concurrently from multiple threads. + + + + + + Internal constructor only a CancellationTokenSource should create a CancellationToken + + + + + Initializes the CancellationToken. + + + The canceled state for the token. + + + Tokens created with this constructor will remain in the canceled state specified + by the parameter. If is false, + both and will be false. + If is true, + both and will be true. + + + + + Registers a delegate that will be called when this CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + A Boolean value that indicates whether to capture + the current SynchronizationContext and use it + when invoking the . + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The state to pass to the when the delegate is invoked. This may be null. + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The state to pass to the when the delegate is invoked. This may be null. + A Boolean value that indicates whether to capture + the current SynchronizationContext and use it + when invoking the . + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Determines whether the current CancellationToken instance is equal to the + specified token. + + The other CancellationToken to which to compare this + instance. + True if the instances are equal; otherwise, false. Two tokens are equal if they are associated + with the same CancellationTokenSource or if they were both constructed + from public CancellationToken constructors and their values are equal. + + + + Determines whether the current CancellationToken instance is equal to the + specified . + + The other object to which to compare this instance. + True if is a CancellationToken + and if the two instances are equal; otherwise, false. Two tokens are equal if they are associated + with the same CancellationTokenSource or if they were both constructed + from public CancellationToken constructors and their values are equal. + An associated CancellationTokenSource has been disposed. + + + + Serves as a hash function for a CancellationToken. + + A hash code for the current CancellationToken instance. + + + + Determines whether two CancellationToken instances are equal. + + The first instance. + The second instance. + True if the instances are equal; otherwise, false. + An associated CancellationTokenSource has been disposed. + + + + Determines whether two CancellationToken instances are not equal. + + The first instance. + The second instance. + True if the instances are not equal; otherwise, false. + An associated CancellationTokenSource has been disposed. + + + + Throws a OperationCanceledException if + this token has had cancellation requested. + + + This method provides functionality equivalent to: + + if (token.IsCancellationRequested) + throw new OperationCanceledException(token); + + + The token has had cancellation requested. + The associated CancellationTokenSource has been disposed. + + + + Returns an empty CancellationToken value. + + + The value returned by this property will be non-cancelable by default. + + + + + Gets whether cancellation has been requested for this token. + + Whether cancellation has been requested for this token. + + + This property indicates whether cancellation has been requested for this token, + either through the token initially being construted in a canceled state, or through + calling Cancel + on the token's associated . + + + If this property is true, it only guarantees that cancellation has been requested. + It does not guarantee that every registered handler + has finished executing, nor that cancellation requests have finished propagating + to all registered handlers. Additional synchronization may be required, + particularly in situations where related objects are being canceled concurrently. + + + + + + Gets whether this token is capable of being in the canceled state. + + + If CanBeCanceled returns false, it is guaranteed that the token will never transition + into a canceled state, meaning that will never + return true. + + + + + Gets a that is signaled when the token is canceled. + + Accessing this property causes a WaitHandle + to be instantiated. It is preferable to only use this property when necessary, and to then + dispose the associated instance at the earliest opportunity (disposing + the source will dispose of this allocated handle). The handle should not be closed or disposed directly. + + The associated CancellationTokenSource has been disposed. + + + + Represents a callback delegate that has been registered with a CancellationToken. + + + To unregister a callback, dispose the corresponding Registration instance. + + + + + Attempts to deregister the item. If it's already being run, this may fail. + Entails a full memory fence. + + True if the callback was found and deregistered, false otherwise. + + + + Disposes of the registration and unregisters the target callback from the associated + CancellationToken. + If the target callback is currently executing this method will wait until it completes, except + in the degenerate cases where a callback method deregisters itself. + + + + + Determines whether two CancellationTokenRegistration + instances are equal. + + The first instance. + The second instance. + True if the instances are equal; otherwise, false. + + + + Determines whether two CancellationTokenRegistration instances are not equal. + + The first instance. + The second instance. + True if the instances are not equal; otherwise, false. + + + + Determines whether the current CancellationTokenRegistration instance is equal to the + specified . + + The other object to which to compare this instance. + True, if both this and are equal. False, otherwise. + Two CancellationTokenRegistration instances are equal if + they both refer to the output of a single call to the same Register method of a + CancellationToken. + + + + + Determines whether the current CancellationToken instance is equal to the + specified . + + The other CancellationTokenRegistration to which to compare this instance. + True, if both this and are equal. False, otherwise. + Two CancellationTokenRegistration instances are equal if + they both refer to the output of a single call to the same Register method of a + CancellationToken. + + + + + Serves as a hash function for a CancellationTokenRegistration.. + + A hash code for the current CancellationTokenRegistration instance. + + + + Signals to a that it should be canceled. + + + + is used to instantiate a + (via the source's Token property) + that can be handed to operations that wish to be notified of cancellation or that can be used to + register asynchronous operations for cancellation. That token may have cancellation requested by + calling to the source's Cancel + method. + + + All members of this class, except Dispose, are thread-safe and may be used + concurrently from multiple threads. + + + + + The ID of the thread currently executing the main body of CTS.Cancel() + this helps us to know if a call to ctr.Dispose() is running 'within' a cancellation callback. + This is updated as we move between the main thread calling cts.Cancel() and any syncContexts that are used to + actually run the callbacks. + + + + Initializes the . + + + + + Communicates a request for cancellation. + + + + The associated will be + notified of the cancellation and will transition to a state where + IsCancellationRequested returns true. + Any callbacks or cancelable operations + registered with the will be executed. + + + Cancelable operations and callbacks registered with the token should not throw exceptions. + However, this overload of Cancel will aggregate any exceptions thrown into a , + such that one callback throwing an exception will not prevent other registered callbacks from being executed. + + + The that was captured when each callback was registered + will be reestablished when the callback is invoked. + + + An aggregate exception containing all the exceptions thrown + by the registered callbacks on the associated . + This has been disposed. + + + + Communicates a request for cancellation. + + + + The associated will be + notified of the cancellation and will transition to a state where + IsCancellationRequested returns true. + Any callbacks or cancelable operations + registered with the will be executed. + + + Cancelable operations and callbacks registered with the token should not throw exceptions. + If is true, an exception will immediately propagate out of the + call to Cancel, preventing the remaining callbacks and cancelable operations from being processed. + If is false, this overload will aggregate any + exceptions thrown into a , + such that one callback throwing an exception will not prevent other registered callbacks from being executed. + + + The that was captured when each callback was registered + will be reestablished when the callback is invoked. + + + Specifies whether exceptions should immediately propagate. + An aggregate exception containing all the exceptions thrown + by the registered callbacks on the associated . + This has been disposed. + + + + Releases the resources used by this . + + + This method is not thread-safe for any other concurrent calls. + + + + + Throws an exception if the source has been disposed. + + + + + InternalGetStaticSource() + + Whether the source should be set. + A static source to be shared among multiple tokens. + + + + Registers a callback object. If cancellation has already occurred, the + callback will have been run by the time this method returns. + + + + + + + + + + Invoke the Canceled event. + + + The handlers are invoked synchronously in LIFO order. + + + + + Creates a CancellationTokenSource that will be in the canceled state + when any of the source tokens are in the canceled state. + + The first CancellationToken to observe. + The second CancellationToken to observe. + A CancellationTokenSource that is linked + to the source tokens. + A CancellationTokenSource associated with + one of the source tokens has been disposed. + + + + Creates a CancellationTokenSource that will be in the canceled state + when any of the source tokens are in the canceled state. + + The CancellationToken instances to observe. + A CancellationTokenSource that is linked + to the source tokens. + is null. + A CancellationTokenSource associated with + one of the source tokens has been disposed. + + + + Gets whether cancellation has been requested for this CancellationTokenSource. + + Whether cancellation has been requested for this CancellationTokenSource. + + + This property indicates whether cancellation has been requested for this token source, such as + due to a call to its + Cancel method. + + + If this property returns true, it only guarantees that cancellation has been requested. It does not + guarantee that every handler registered with the corresponding token has finished executing, nor + that cancellation requests have finished propagating to all registered handlers. Additional + synchronization may be required, particularly in situations where related objects are being + canceled concurrently. + + + + + + A simple helper to determine whether cancellation has finished. + + + + + A simple helper to determine whether disposal has occured. + + + + + The ID of the thread that is running callbacks. + + + + + Gets the CancellationToken + associated with this . + + The CancellationToken + associated with this . + The token source has been + disposed. + + + + + + + + + + + + + + The currently executing callback + + + + + A helper class for collating the various bits of information required to execute + cancellation callbacks. + + + + + InternalExecuteCallbackSynchronously_GeneralPath + This will be called on the target synchronization context, however, we still need to restore the required execution context + + + + + A sparsely populated array. Elements can be sparse and some null, but this allows for + lock-free additions and growth, and also for constant time removal (by nulling out). + + The kind of elements contained within. + + + + Allocates a new array with the given initial size. + + How many array slots to pre-allocate. + + + + Adds an element in the first available slot, beginning the search from the tail-to-head. + If no slots are available, the array is grown. The method doesn't return until successful. + + The element to add. + Information about where the add happened, to enable O(1) deregistration. + + + + The tail of the doubly linked list. + + + + + A struct to hold a link to the exact spot in an array an element was inserted, enabling + constant time removal later on. + + + + + A fragment of a sparsely populated array, doubly linked. + + The kind of elements contained within. + + + + Provides lazy initialization routines. + + + These routines avoid needing to allocate a dedicated, lazy-initialization instance, instead using + references to ensure targets have been initialized as they are accessed. + + + + + Initializes a target reference type with the type's default constructor if the target has not + already been initialized. + + The refence type of the reference to be initialized. + A reference of type to initialize if it has not + already been initialized. + The initialized reference of type . + Type does not have a default + constructor. + + Permissions to access the constructor of type were missing. + + + + This method may only be used on reference types. To ensure initialization of value + types, see other overloads of EnsureInitialized. + + + This method may be used concurrently by multiple threads to initialize . + In the event that multiple threads access this method concurrently, multiple instances of + may be created, but only one will be stored into . In such an occurrence, this method will not dispose of the + objects that were not stored. If such objects must be disposed, it is up to the caller to determine + if an object was not used and to then dispose of the object appropriately. + + + + + + Initializes a target reference type using the specified function if it has not already been + initialized. + + The reference type of the reference to be initialized. + The reference of type to initialize if it has not + already been initialized. + The invoked to initialize the + reference. + The initialized reference of type . + Type does not have a + default constructor. + returned + null. + + + This method may only be used on reference types, and may + not return a null reference (Nothing in Visual Basic). To ensure initialization of value types or + to allow null reference types, see other overloads of EnsureInitialized. + + + This method may be used concurrently by multiple threads to initialize . + In the event that multiple threads access this method concurrently, multiple instances of + may be created, but only one will be stored into . In such an occurrence, this method will not dispose of the + objects that were not stored. If such objects must be disposed, it is up to the caller to determine + if an object was not used and to then dispose of the object appropriately. + + + + + + Initialize the target using the given delegate (slow path). + + The reference type of the reference to be initialized. + The variable that need to be initialized + The delegate that will be executed to initialize the target + The initialized variable + + + + Initializes a target reference or value type with its default constructor if it has not already + been initialized. + + The type of the reference to be initialized. + A reference or value of type to initialize if it + has not already been initialized. + A reference to a boolean that determines whether the target has already + been initialized. + A reference to an object used as the mutually exclusive lock for initializing + . + The initialized value of type . + + + + Initializes a target reference or value type with a specified function if it has not already been + initialized. + + The type of the reference to be initialized. + A reference or value of type to initialize if it + has not already been initialized. + A reference to a boolean that determines whether the target has already + been initialized. + A reference to an object used as the mutually exclusive lock for initializing + . + The invoked to initialize the + reference or value. + The initialized value of type . + + + + Ensure the target is initialized and return the value (slow path). This overload permits nulls + and also works for value type targets. Uses the supplied function to create the value. + + The type of target. + A reference to the target to be initialized. + A reference to a location tracking whether the target has been initialized. + A reference to a location containing a mutual exclusive lock. + + The to invoke in order to produce the lazily-initialized value. + + The initialized object. + + + + Provides a slimmed down version of . + + + All public and protected members of are thread-safe and may be used + concurrently from multiple threads, with the exception of Dispose, which + must only be used when all other operations on the have + completed, and Reset, which should only be used when no other threads are + accessing the event. + + + + + Initializes a new instance of the + class with an initial state of nonsignaled. + + + + + Initializes a new instance of the + class with a Boolen value indicating whether to set the intial state to signaled. + + true to set the initial state signaled; false to set the initial state + to nonsignaled. + + + + Initializes a new instance of the + class with a Boolen value indicating whether to set the intial state to signaled and a specified + spin count. + + true to set the initial state to signaled; false to set the initial state + to nonsignaled. + The number of spin waits that will occur before falling back to a true + wait. + is less than + 0 or greater than the maximum allowed value. + + + + Initializes the internal state of the event. + + Whether the event is set initially or not. + The spin count that decides when the event will block. + + + + Helper to ensure the lock object is created before first use. + + + + + This method lazily initializes the event object. It uses CAS to guarantee that + many threads racing to call this at once don't result in more than one event + being stored and used. The event will be signaled or unsignaled depending on + the state of the thin-event itself, with synchronization taken into account. + + True if a new event was created and stored, false otherwise. + + + + Sets the state of the event to signaled, which allows one or more threads waiting on the event to + proceed. + + + + + Private helper to actually perform the Set. + + Indicates whether we are calling Set() during cancellation. + The object has been canceled. + + + + Sets the state of the event to nonsignaled, which causes threads to block. + + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + Blocks the current thread until the current is set. + + + The maximum number of waiters has been exceeded. + + + The caller of this method blocks indefinitely until the current instance is set. The caller will + return immediately if the event is currently in a set state. + + + + + Blocks the current thread until the current receives a signal, + while observing a . + + The to + observe. + + The maximum number of waiters has been exceeded. + + was + canceled. + + The caller of this method blocks indefinitely until the current instance is set. The caller will + return immediately if the event is currently in a set state. + + + + + Blocks the current thread until the current is set, using a + to measure the time interval. + + A that represents the number of milliseconds + to wait, or a that represents -1 milliseconds to wait indefinitely. + + true if the was set; otherwise, + false. + is a negative + number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater + than . + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + to measure the time interval, while observing a . + + A that represents the number of milliseconds + to wait, or a that represents -1 milliseconds to wait indefinitely. + + The to + observe. + true if the was set; otherwise, + false. + is a negative + number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater + than . + was canceled. + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + 32-bit signed integer to measure the time interval. + + The number of milliseconds to wait, or (-1) to wait indefinitely. + true if the was set; otherwise, + false. + is a + negative number other than -1, which represents an infinite time-out. + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + 32-bit signed integer to measure the time interval, while observing a . + + The number of milliseconds to wait, or (-1) to wait indefinitely. + The to + observe. + true if the was set; otherwise, + false. + is a + negative number other than -1, which represents an infinite time-out. + + The maximum number of waiters has been exceeded. + + was canceled. + + + + Releases all resources used by the current instance of . + + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + When overridden in a derived class, releases the unmanaged resources used by the + , and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + Throw ObjectDisposedException if the MRES is disposed + + + + + Private helper method to wake up waiters when a cancellationToken gets canceled. + + + + + Private helper method for updating parts of a bit-string state value. + Mainly called from the IsSet and Waiters properties setters + + + Note: the parameter types must be int as CompareExchange cannot take a Uint + + The new value + The mask used to set the bits + + + + Private helper method - performs Mask and shift, particular helpful to extract a field from a packed word. + eg ExtractStatePortionAndShiftRight(0x12345678, 0xFF000000, 24) => 0x12, ie extracting the top 8-bits as a simple integer + + ?? is there a common place to put this rather than being private to MRES? + + + + + + + + + Performs a Mask operation, but does not perform the shift. + This is acceptable for boolean values for which the shift is unnecessary + eg (val & Mask) != 0 is an appropriate way to extract a boolean rather than using + ((val & Mask) >> shiftAmount) == 1 + + ?? is there a common place to put this rather than being private to MRES? + + + + + + + Helper function to measure and update the wait time + + The first time (in Ticks) observed when the wait started. + The orginal wait timeoutout in milliseconds. + The new wait time in milliseconds, -1 if the time expired, -2 if overflow in counters + has occurred. + + + + Gets the underlying object for this . + + The underlying event object fore this . + + Accessing this property forces initialization of an underlying event object if one hasn't + already been created. To simply wait on this , + the public Wait methods should be preferred. + + + + + Gets whether the event is set. + + true if the event has is set; otherwise, false. + + + + Gets the number of spin waits that will be occur before falling back to a true wait. + + + + + How many threads are waiting. + + + + + Provides support for spin-based waiting. + + + + encapsulates common spinning logic. On single-processor machines, yields are + always used instead of busy waits, and on computers with Intel™ processors employing Hyper-Threading™ + technology, it helps to prevent hardware thread starvation. SpinWait encapsulates a good mixture of + spinning and true yielding. + + + is a value type, which means that low-level code can utilize SpinWait without + fear of unnecessary allocation overheads. SpinWait is not generally useful for ordinary applications. + In most cases, you should use the synchronization classes provided by the .NET Framework, such as + . For most purposes where spin waiting is required, however, + the type should be preferred over the System.Threading.Thread.SpinWait method. + + + While SpinWait is designed to be used in concurrent applications, it is not designed to be + used from multiple threads concurrently. SpinWait's members are not thread-safe. If multiple + threads must spin, each should use its own instance of SpinWait. + + + + + + Performs a single spin. + + + This is typically called in a loop, and may change in behavior based on the number of times a + has been called thus far on this instance. + + + + + Resets the spin counter. + + + This makes and behave as though no calls + to had been issued on this instance. If a instance + is reused many times, it may be useful to reset it to avoid yielding too soon. + + + + + Spins until the specified condition is satisfied. + + A delegate to be executed over and over until it returns true. + The argument is null. + + + + Spins until the specified condition is satisfied or until the specified timeout is expired. + + A delegate to be executed over and over until it returns true. + + A that represents the number of milliseconds to wait, + or a TimeSpan that represents -1 milliseconds to wait indefinitely. + True if the condition is satisfied within the timeout; otherwise, false + The argument is null. + is a negative number + other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than + . + + + + Spins until the specified condition is satisfied or until the specified timeout is expired. + + A delegate to be executed over and over until it returns true. + The number of milliseconds to wait, or (-1) to wait indefinitely. + True if the condition is satisfied within the timeout; otherwise, false + The argument is null. + is a + negative number other than -1, which represents an infinite time-out. + + + + Gets the number of times has been called on this instance. + + + + + Gets whether the next call to will yield the processor, triggering a + forced context switch. + + Whether the next call to will yield the processor, triggering a + forced context switch. + + On a single-CPU machine, always yields the processor. On machines with + multiple CPUs, may yield after an unspecified number of calls. + + + + + A helper class to get the number of preocessors, it updates the numbers of processors every sampling interval + + + + + Gets the number of available processors + + + + + Gets whether the current machine has only a single processor. + + + + + Represents an asynchronous operation that produces a result at some time in the future. + + + The type of the result produced by this . + + + + instances may be created in a variety of ways. The most common approach is by + using the task's property to retrieve a instance that can be used to create tasks for several + purposes. For example, to create a that runs a function, the factory's StartNew + method may be used: + + // C# + var t = Task<int>.Factory.StartNew(() => GenerateResult()); + - or - + var t = Task.Factory.StartNew(() => GenerateResult()); + + ' Visual Basic + Dim t = Task<int>.Factory.StartNew(Function() GenerateResult()) + - or - + Dim t = Task.Factory.StartNew(Function() GenerateResult()) + + + + The class also provides constructors that initialize the task but that do not + schedule it for execution. For performance reasons, the StartNew method should be the + preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation + and scheduling must be separated, the constructors may be used, and the task's + Start + method may then be used to schedule the task for execution at a later time. + + + All members of , except for + Dispose, are thread-safe + and may be used from multiple threads concurrently. + + + + + + Represents an asynchronous operation. + + + + instances may be created in a variety of ways. The most common approach is by + using the Task type's property to retrieve a instance that can be used to create tasks for several + purposes. For example, to create a that runs an action, the factory's StartNew + method may be used: + + // C# + var t = Task.Factory.StartNew(() => DoAction()); + + ' Visual Basic + Dim t = Task.Factory.StartNew(Function() DoAction()) + + + + The class also provides constructors that initialize the Task but that do not + schedule it for execution. For performance reasons, TaskFactory's StartNew method should be the + preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation + and scheduling must be separated, the constructors may be used, and the task's + method may then be used to schedule the task for execution at a later time. + + + All members of , except for , are thread-safe + and may be used from multiple threads concurrently. + + + For operations that return values, the class + should be used. + + + For developers implementing custom debuggers, several internal and private members of Task may be + useful (these may change from release to release). The Int32 m_taskId field serves as the backing + store for the property, however accessing this field directly from a debugger may be + more efficient than accessing the same value through the property's getter method (the + s_taskIdCounter Int32 counter is used to retrieve the next available ID for a Task). Similarly, the + Int32 m_stateFlags field stores information about the current lifecycle stage of the Task, + information also accessible through the property. The m_action System.Object + field stores a reference to the Task's delegate, and the m_stateObject System.Object field stores the + async state passed to the Task by the developer. Finally, for debuggers that parse stack frames, the + InternalWait method serves a potential marker for when a Task is entering a wait operation. + + + + + + A type initializer that runs with the appropriate permissions. + + + + + Initializes a new with the specified action. + + The delegate that represents the code to execute in the Task. + The argument is null. + + + + Initializes a new with the specified action and CancellationToken. + + The delegate that represents the code to execute in the Task. + The CancellationToken + that will be assigned to the new Task. + The argument is null. + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action and creation options. + + The delegate that represents the code to execute in the task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action and creation options. + + The delegate that represents the code to execute in the task. + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action and state. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + + The argument is null. + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + The that will be assigned to the new task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + An internal constructor used by the factory methods on task and its descendent(s). + This variant does not capture the ExecutionContext; it is up to the caller to do that. + + An action to execute. + Optional state to pass to the action. + Parent of Task. + A CancellationToken for the task. + A task scheduler under which the task will run. + Options to control its execution. + Internal options to control its execution + + + + Common logic used by the following internal ctors: + Task() + Task(object action, object state, Task parent, TaskCreationOptions options, TaskScheduler taskScheduler) + + ASSUMES THAT m_creatingTask IS ALREADY SET. + + + Action for task to execute. + Object to which to pass to action (may be null) + Task scheduler on which to run thread (only used by continuation tasks). + A CancellationToken for the Task. + Options to customize behavior of Task. + Internal options to customize behavior of Task. + + + + Checks if we registered a CT callback during construction, and deregisters it. + This should be called when we know the registration isn't useful anymore. Specifically from Finish() if the task has completed + successfully or with an exception. + + + + + Captures the ExecutionContext so long as flow isn't suppressed. + + A stack crawl mark pointing to the frame of the caller. + + + + Internal function that will be called by a new child task to add itself to + the children list of the parent (this). + + Since a child task can only be created from the thread executing the action delegate + of this task, reentrancy is neither required nor supported. This should not be called from + anywhere other than the task construction/initialization codepaths. + + + + + Starts the , scheduling it for execution to the current TaskScheduler. + + + A task may only be started and run only once. Any attempts to schedule a task a second time + will result in an exception. + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Starts the , scheduling it for execution to the specified TaskScheduler. + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + The TaskScheduler with which to associate + and execute this task. + + + The argument is null. + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Runs the synchronously on the current TaskScheduler. + + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + Tasks executed with will be associated with the current TaskScheduler. + + + If the target scheduler does not support running this Task on the current thread, the Task will + be scheduled for execution on the scheduler, and the current thread will block until the + Task has completed execution. + + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Runs the synchronously on the scheduler provided. + + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + If the target scheduler does not support running this Task on the current thread, the Task will + be scheduled for execution on the scheduler, and the current thread will block until the + Task has completed execution. + + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + The parameter + is null. + The scheduler on which to attempt to run this task inline. + + + + Throws an exception if the task has been disposed, and hence can no longer be accessed. + + The task has been disposed. + + + + Sets the internal completion event. + + + + + Disposes the , releasing all of its unmanaged resources. + + + Unlike most of the members of , this method is not thread-safe. + Also, may only be called on a that is in one of + the final states: RanToCompletion, + Faulted, or + Canceled. + + + The exception that is thrown if the is not in + one of the final states: RanToCompletion, + Faulted, or + Canceled. + + + + + Disposes the , releasing all of its unmanaged resources. + + + A Boolean value that indicates whether this method is being called due to a call to . + + + Unlike most of the members of , this method is not thread-safe. + + + + + Schedules the task for execution. + + If true, TASK_STATE_STARTED bit is turned on in + an atomic fashion, making sure that TASK_STATE_CANCELED does not get set + underneath us. If false, TASK_STATE_STARTED bit is OR-ed right in. This + allows us to streamline things a bit for StartNew(), where competing cancellations + are not a problem. + + + + Adds an exception to the list of exceptions this task has thrown. + + An object representing either an Exception or a collection of Exceptions. + + + + Returns a list of exceptions by aggregating the holder's contents. Or null if + no exceptions have been thrown. + + Whether to include a TCE if cancelled. + An aggregate exception, or null if no exceptions have been caught. + + + + Throws an aggregate exception if the task contains exceptions. + + + + + Checks whether this is an attached task, and whether we are being called by the parent task. + And sets the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag based on that. + + This is meant to be used internally when throwing an exception, and when WaitAll is gathering + exceptions for tasks it waited on. If this flag gets set, the implicit wait on children + will skip exceptions to prevent duplication. + + This should only be called when this task has completed with an exception + + + + + + Signals completion of this particular task. + + The bUserDelegateExecuted parameter indicates whether this Finish() call comes following the + full execution of the user delegate. + + If bUserDelegateExecuted is false, it mean user delegate wasn't invoked at all (either due to + a cancellation request, or because this task is a promise style Task). In this case, the steps + involving child tasks (i.e. WaitForChildren) will be skipped. + + + + + + FinishStageTwo is to be executed as soon as we known there are no more children to complete. + It can happen i) either on the thread that originally executed this task (if no children were spawned, or they all completed by the time this task's delegate quit) + ii) or on the thread that executed the last child. + + + + + Final stage of the task completion code path. Notifies the parent (if any) that another of its childre are done, and runs continuations. + This function is only separated out from FinishStageTwo because these two operations are also needed to be called from CancellationCleanupLogic() + + + + + This is called by children of this task when they are completed. + + + + + This is to be called just before the task does its final state transition. + It traverses the list of exceptional children, and appends their aggregate exceptions into this one's exception list + + + + + Special purpose Finish() entry point to be used when the task delegate throws a ThreadAbortedException + This makes a note in the state flags so that we avoid any costly synchronous operations in the finish codepath + such as inlined continuations + + + Indicates whether the ThreadAbortException was added to this task's exception holder. + This should always be true except for the case of non-root self replicating task copies. + + Whether the delegate was executed. + + + + Executes the task. This method will only be called once, and handles bookeeping associated with + self-replicating tasks, in addition to performing necessary exception marshaling. + + The task has already been disposed. + + + + IThreadPoolWorkItem override, which is the entry function for this task when the TP scheduler decides to run it. + + + + + + Outermost entry function to execute this task. Handles all aspects of executing a task on the caller thread. + Currently this is called by IThreadPoolWorkItem.ExecuteWorkItem(), and TaskManager.TryExecuteInline. + + + Performs atomic updates to prevent double execution. Should only be set to true + in codepaths servicing user provided TaskSchedulers. The ConcRT or ThreadPool schedulers don't need this. + + + + The actual code which invokes the body of the task. This can be overriden in derived types. + + + + + Alternate InnerInvoke prototype to be called from ExecuteSelfReplicating() so that + the Parallel Debugger can discover the actual task being invoked. + Details: Here, InnerInvoke is actually being called on the rootTask object while we are actually executing the + childTask. And the debugger needs to discover the childTask, so we pass that down as an argument. + The NoOptimization and NoInlining flags ensure that the childTask pointer is retained, and that this + function appears on the callstack. + + + + + + Performs whatever handling is necessary for an unhandled exception. Normally + this just entails adding the exception to the holder object. + + The exception that went unhandled. + + + + Waits for the to complete execution. + + + The was canceled -or- an exception was thrown during + the execution of the . + + + The has been disposed. + + + + + Waits for the to complete execution. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + true if the completed execution within the allotted time; otherwise, false. + + + The was canceled -or- an exception was thrown during the execution of the . + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + The has been disposed. + + + + + Waits for the to complete execution. + + + A to observe while waiting for the task to complete. + + + The was canceled. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + + + Waits for the to complete execution. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + true if the completed execution within the allotted time; otherwise, + false. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + + + Waits for the to complete execution. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for the task to complete. + + + true if the completed execution within the allotted time; otherwise, false. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + The core wait function, which is only accesible internally. It's meant to be used in places in TPL code where + the current context is known or cached. + + + + + Cancels the . + + Indiactes whether we should only cancel non-invoked tasks. + For the default scheduler this option will only be serviced through TryDequeue. + For custom schedulers we also attempt an atomic state transition. + true if the task was successfully canceled; otherwise, false. + The + has been disposed. + + + + Sets the task's cancellation acknowledged flag. + + + + + Runs all of the continuations, as appropriate. + + + + + Helper function to determine whether the current task is in the state desired by the + continuation kind under evaluation. Three possibilities exist: the task failed with + an unhandled exception (OnFailed), the task was canceled before running (OnAborted), + or the task completed successfully (OnCompletedSuccessfully). Note that the last + one includes completing due to cancellation. + + The continuation options under evaluation. + True if the continuation should be run given the task's current state. + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + The that will be assigned to the new continuation task. + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Converts TaskContinuationOptions to TaskCreationOptions, and also does + some validity checking along the way. + + Incoming TaskContinuationOptions + Outgoing TaskCreationOptions + Outgoing InternalTaskOptions + + + + Registers the continuation and possibly runs it (if the task is already finished). + + The continuation task itself. + TaskScheduler with which to associate continuation task. + Restrictions on when the continuation becomes active. + + + + Waits for all of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + An array of instances on which to wait. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + A to observe while waiting for the tasks to complete. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The was canceled. + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for the tasks to complete. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + Waits for a set of handles in a STA-aware way. In other words, it will wait for each + of the events individually if we're on a STA thread, because MsgWaitForMultipleObjectsEx + can't do a true wait-all due to its hidden message queue event. This is not atomic, + of course, but we only wait on one-way (MRE) events anyway so this is OK. + + An array of wait handles to wait on. + The timeout to use during waits. + The cancellationToken that enables a wait to be canceled. + True if all waits succeeded, false if a timeout occurred. + + + + Internal WaitAll implementation which is meant to be used with small number of tasks, + optimized for Parallel.Invoke and other structured primitives. + + + + + This internal function is only meant to be called by WaitAll() + If the completed task is canceled or it has other exceptions, here we will add those + into the passed in exception list (which will be lazily initialized here). + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + The index of the completed task in the array argument. + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + A to observe while waiting for a task to complete. + + + The index of the completed task in the array argument. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + The was canceled. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for a task to complete. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + Gets a unique ID for this Task instance. + + + Task IDs are assigned on-demand and do not necessarily represent the order in the which Task + instances were created. + + + + + Returns the unique ID of the currently executing Task. + + + + + Gets the Task instance currently executing, or + null if none exists. + + + + + Gets the Exception that caused the Task to end prematurely. If the Task completed successfully or has not yet thrown any + exceptions, this will return null. + + + Tasks that throw unhandled exceptions store the resulting exception and propagate it wrapped in a + in calls to Wait + or in accesses to the property. Any exceptions not observed by the time + the Task instance is garbage collected will be propagated on the finalizer thread. + + + The Task + has been disposed. + + + + + Gets the TaskStatus of this Task. + + + + + Gets whether this Task instance has completed + execution due to being canceled. + + + A Task will complete in Canceled state either if its CancellationToken + was marked for cancellation before the task started executing, or if the task acknowledged the cancellation request on + its already signaled CancellationToken by throwing an + OperationCanceledException2 that bears the same + CancellationToken. + + + + + Returns true if this task has a cancellation token and it was signaled. + To be used internally in execute entry codepaths. + + + + + This internal property provides access to the CancellationToken that was set on the task + when it was constructed. + + + + + Gets whether this threw an OperationCanceledException2 while its CancellationToken was signaled. + + + + + Gets whether this Task has completed. + + + will return true when the Task is in one of the three + final states: RanToCompletion, + Faulted, or + Canceled. + + + + + Checks whether this task has been disposed. + + + + + Gets the TaskCreationOptions used + to create this task. + + + + + Gets a that can be used to wait for the task to + complete. + + + Using the wait functionality provided by + should be preferred over using for similar + functionality. + + + The has been disposed. + + + + + Gets the state object supplied when the Task was created, + or null if none was supplied. + + + + + Gets an indication of whether the asynchronous operation completed synchronously. + + true if the asynchronous operation completed synchronously; otherwise, false. + + + + Provides access to the TaskScheduler responsible for executing this Task. + + + + + Provides access to factory methods for creating and instances. + + + The factory returned from is a default instance + of , as would result from using + the default constructor on TaskFactory. + + + + + Provides an event that can be used to wait for completion. + Only called by Wait*(), which means that we really do need to instantiate a completion event. + + + + + Determines whether this is the root task of a self replicating group. + + + + + Determines whether the task is a replica itself. + + + + + The property formerly known as IsFaulted. + + + + + Gets whether the completed due to an unhandled exception. + + + If is true, the Task's will be equal to + TaskStatus.Faulted, and its + property will be non-null. + + + + + Checks whether the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag is set, + This will only be used by the implicit wait to prevent double throws + + + + + + Checks whether the body was ever invoked. Used by task scheduler code to verify custom schedulers actually ran the task. + + + + + A structure to hold continuation information. + + + + + Constructs a new continuation structure. + + The task to be activated. + The continuation options. + The scheduler to use for the continuation. + + + + Invokes the continuation for the target completion task. + + The completed task. + Whether the continuation can be inlined. + + + + Initializes a new with the specified function. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + + The argument is null. + + + + + Initializes a new with the specified function. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + The to be assigned to this task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified function and creation options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified function and creation options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified function and state. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the action. + + The argument is null. + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + The to be assigned to the new task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + The to be assigned to the new task. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Creates a new future object. + + The parent task for this future. + A function that yields the future value. + The task scheduler which will be used to execute the future. + The CancellationToken for the task. + Options to control the future's behavior. + Internal options to control the future's behavior. + The argument specifies + a SelfReplicating , which is illegal."/>. + + + + Creates a new future object. + + The parent task for this future. + An object containing data to be used by the action; may be null. + A function that yields the future value. + The CancellationToken for the task. + The task scheduler which will be used to execute the future. + Options to control the future's behavior. + Internal options to control the future's behavior. + The argument specifies + a SelfReplicating , which is illegal."/>. + + + + Evaluates the value selector of the Task which is passed in as an object and stores the result. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new task. + A new continuation . + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The , when executed, should return a . This task's completion state will be transferred to the task returned + from the ContinueWith call. + + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be passed as + an argument this completed task. + + The that will be assigned to the new task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The , when executed, should return a . + This task's completion state will be transferred to the task returned from the + ContinueWith call. + + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Gets the result value of this . + + + The get accessor for this property ensures that the asynchronous operation is complete before + returning. Once the result of the computation is available, it is stored and will be returned + immediately on later calls to . + + + + + Provides access to factory methods for creating instances. + + + The factory returned from is a default instance + of , as would result from using + the default constructor on the factory type. + + + + + Provides support for creating and scheduling + Task{TResult} objects. + + The type of the results that are available though + the Task{TResult} objects that are associated with + the methods in this class. + + + There are many common patterns for which tasks are relevant. The + class encodes some of these patterns into methods that pick up default settings, which are + configurable through its constructors. + + + A default instance of is available through the + Task{TResult}.Factory property. + + + + + + Initializes a instance with the default configuration. + + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the default configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The + TaskScheduler to use to schedule any tasks created with this TaskFactory{TResult}. A null value + indicates that the current TaskScheduler should be used. + + + With this constructor, the + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to , unless it's null, in which case the property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory{TResult}. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory{TResult}. + + + The exception that is thrown when the + argument or the + argument specifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory{TResult}. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory{TResult}. + + + The default + TaskScheduler to use to schedule any Tasks created with this TaskFactory{TResult}. A null value + indicates that TaskScheduler.Current should be used. + + + The exception that is thrown when the + argument or the + argumentspecifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to + , unless it's null, in which case the property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new task. + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The that will be assigned to the new task. + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Gets the default CancellationToken of this + TaskFactory. + + + This property returns the default that will be assigned to all + tasks created by this factory unless another CancellationToken value is explicitly specified + during the call to the factory methods. + + + + + Gets the TaskScheduler of this + TaskFactory{TResult}. + + + This property returns the default scheduler for this factory. It will be used to schedule all + tasks unless another scheduler is explicitly specified during calls to this factory's methods. + If null, TaskScheduler.Current + will be used. + + + + + Gets the TaskCreationOptions + value of this TaskFactory{TResult}. + + + This property returns the default creation options for this factory. They will be used to create all + tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Gets the TaskContinuationOptions + value of this TaskFactory{TResult}. + + + This property returns the default continuation options for this factory. They will be used to create + all continuation tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Represents the current stage in the lifecycle of a . + + + + + The task has been initialized but has not yet been scheduled. + + + + + The task is waiting to be activated and scheduled internally by the .NET Framework infrastructure. + + + + + The task has been scheduled for execution but has not yet begun executing. + + + + + The task is running but has not yet completed. + + + + + The task has finished executing and is implicitly waiting for + attached child tasks to complete. + + + + + The task completed execution successfully. + + + + + The task acknowledged cancellation by throwing an OperationCanceledException2 with its own CancellationToken + while the token was in signaled state, or the task's CancellationToken was already signaled before the + task started executing. + + + + + The task completed due to an unhandled exception. + + + + + Specifies flags that control optional behavior for the creation and execution of tasks. + + + + + Specifies that the default behavior should be used. + + + + + A hint to a TaskScheduler to schedule a + task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to + be run sooner, and tasks scheduled later will be more likely to be run later. + + + + + Specifies that a task will be a long-running, course-grained operation. It provides a hint to the + TaskScheduler that oversubscription may be + warranted. + + + + + Specifies that a task is attached to a parent in the task hierarchy. + + + + + Task creation flags which are only used internally. + + + + Specifies "No internal task options" + + + Used to filter out internal vs. public task creation options. + + + Specifies that the task will be queued by the runtime before handing it over to the user. + This flag will be used to skip the cancellationtoken registration step, which is only meant for unstarted tasks. + + + + Specifies flags that control optional behavior for the creation and execution of continuation tasks. + + + + + Default = "Continue on any, no task options, run asynchronously" + Specifies that the default behavior should be used. Continuations, by default, will + be scheduled when the antecedent task completes, regardless of the task's final TaskStatus. + + + + + A hint to a TaskScheduler to schedule a + task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to + be run sooner, and tasks scheduled later will be more likely to be run later. + + + + + Specifies that a task will be a long-running, course-grained operation. It provides + a hint to the TaskScheduler that + oversubscription may be warranted. + + + + + Specifies that a task is attached to a parent in the task hierarchy. + + + + + Specifies that the continuation task should not be scheduled if its antecedent ran to completion. + This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled + exception. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should not be scheduled if its antecedent was canceled. This + option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent ran to + completion. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent threw an + unhandled exception. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent was canceled. + This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be executed synchronously. With this option + specified, the continuation will be run on the same thread that causes the antecedent task to + transition into its final state. If the antecedent is already complete when the continuation is + created, the continuation will run on the thread creating the continuation. Only very + short-running continuations should be executed synchronously. + + + + + Represents an exception used to communicate task cancellation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the + class with a specified error message and a reference to the inner exception that is the cause of + this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + + Initializes a new instance of the class + with a reference to the that has been canceled. + + A task that has been canceled. + + + + Gets the task associated with this exception. + + + It is permissible for no Task to be associated with a + , in which case + this property will return null. + + + + + Represents the producer side of a unbound to a + delegate, providing access to the consumer side through the property. + + + + It is often the case that a is desired to + represent another asynchronous operation. + TaskCompletionSource is provided for this purpose. It enables + the creation of a task that can be handed out to consumers, and those consumers can use the members + of the task as they would any other. However, unlike most tasks, the state of a task created by a + TaskCompletionSource is controlled explicitly by the methods on TaskCompletionSource. This enables the + completion of the external asynchronous operation to be propagated to the underlying Task. The + separation also ensures that consumers are not able to transition the state without access to the + corresponding TaskCompletionSource. + + + All members of are thread-safe + and may be used from multiple threads concurrently. + + + The type of the result value assocatied with this . + + + + Creates a . + + + + + Creates a + with the specified options. + + + The created + by this instance and accessible through its property + will be instantiated using the specified . + + The options to use when creating the underlying + . + + The represent options invalid for use + with a . + + + + + Creates a + with the specified state. + + The state to use as the underlying + 's AsyncState. + + + + Creates a with + the specified state and options. + + The options to use when creating the underlying + . + The state to use as the underlying + 's AsyncState. + + The represent options invalid for use + with a . + + + + + Attempts to transition the underlying + into the + Faulted + state. + + The exception to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The argument is null. + The was disposed. + + + + Attempts to transition the underlying + into the + Faulted + state. + + The collection of exceptions to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The argument is null. + There are one or more null elements in . + The collection is empty. + The was disposed. + + + + Transitions the underlying + into the + Faulted + state. + + The exception to bind to this . + The argument is null. + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + Faulted + state. + + The collection of exceptions to bind to this . + The argument is null. + There are one or more null elements in . + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Attempts to transition the underlying + into the + RanToCompletion + state. + + The result value to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + RanToCompletion + state. + + The result value to bind to this . + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + Canceled + state. + + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Attempts to transition the underlying + into the + Canceled + state. + + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Gets the created + by this . + + + This property enables a consumer access to the that is controlled by this instance. + The , , + , and + methods (and their "Try" variants) on this instance all result in the relevant state + transitions on this underlying Task. + + + + + An exception holder manages a list of exceptions for one particular task. + It offers the ability to aggregate, but more importantly, also offers intrinsic + support for propagating unhandled exceptions that are never observed. It does + this by aggregating and throwing if the holder is ever GC'd without the holder's + contents ever having been requested (e.g. by a Task.Wait, Task.get_Exception, etc). + + + + + Creates a new holder; it will be registered for finalization. + + The task this holder belongs to. + + + + A finalizer that repropagates unhandled exceptions. + + + + + Add an exception to the internal list. This will ensure the holder is + in the proper state (handled/unhandled) depending on the list's contents. + + An exception object (either an Exception or an + IEnumerable{Exception}) to add to the list. + + + + A private helper method that ensures the holder is considered + unhandled, i.e. it is registered for finalization. + + + + + A private helper method that ensures the holder is considered + handled, i.e. it is not registered for finalization. + + Whether this is called from the finalizer thread. + + + + Allocates a new aggregate exception and adds the contents of the list to + it. By calling this method, the holder assumes exceptions to have been + "observed", such that the finalization check will be subsequently skipped. + + Whether this is being called from a finalizer. + An extra exception to be included (optionally). + The aggregate exception to throw. + + + + Provides a set of static (Shared in Visual Basic) methods for working with specific kinds of + instances. + + + + + Creates a proxy Task that represents the + asynchronous operation of a Task{Task}. + + + It is often useful to be able to return a Task from a + Task{TResult}, where the inner Task represents work done as part of the outer Task{TResult}. However, + doing so results in a Task{Task}, which, if not dealt with carefully, could produce unexpected behavior. Unwrap + solves this problem by creating a proxy Task that represents the entire asynchronous operation of such a Task{Task}. + + The Task{Task} to unwrap. + The exception that is thrown if the + argument is null. + A Task that represents the asynchronous operation of the provided Task{Task}. + + + + Creates a proxy Task{TResult} that represents the + asynchronous operation of a Task{Task{TResult}}. + + + It is often useful to be able to return a Task{TResult} from a Task{TResult}, where the inner Task{TResult} + represents work done as part of the outer Task{TResult}. However, doing so results in a Task{Task{TResult}}, + which, if not dealt with carefully, could produce unexpected behavior. Unwrap solves this problem by + creating a proxy Task{TResult} that represents the entire asynchronous operation of such a Task{Task{TResult}}. + + The Task{Task{TResult}} to unwrap. + The exception that is thrown if the + argument is null. + A Task{TResult} that represents the asynchronous operation of the provided Task{Task{TResult}}. /// Unwraps a Task that returns another Task. + + + + Provides support for creating and scheduling + Tasks. + + + + There are many common patterns for which tasks are relevant. The + class encodes some of these patterns into methods that pick up default settings, which are + configurable through its constructors. + + + A default instance of is available through the + Task.Factory property. + + + + + + Initializes a instance with the default configuration. + + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The + TaskScheduler to use to schedule any tasks created with this TaskFactory. A null value + indicates that the current TaskScheduler should be used. + + + With this constructor, the + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to , unless it's null, in which case the property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory. + + + The exception that is thrown when the + argument or the + argument specifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory. + + + The default + TaskScheduler to use to schedule any Tasks created with this TaskFactory. A null value + indicates that TaskScheduler.Current should be used. + + + The exception that is thrown when the + argument or the + argumentspecifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to + , unless it's null, in which case the property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The started Task. + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors + and then calling + Start to schedule it for execution. However, + unless creation and scheduling must be separated, StartNew is the recommended + approach for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The that will be assigned to the new task. + The started Task. + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors + and then calling + Start to schedule it for execution. However, + unless creation and scheduling must be separated, StartNew is the recommended + approach for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The that will be assigned to the new + A TaskCreationOptions value that controls the behavior of the + created + Task. + The TaskScheduler + that is used to schedule the created Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The started Task. + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The that will be assigned to the new + The started Task. + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The TaskScheduler + that is used to schedule the created Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the asynchronous + operation. + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the asynchronous + operation. + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the asynchronous + operation. + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Check validity of options passed to FromAsync method + + The options to be validated. + determines type of FromAsync method that called this method + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Gets the default CancellationToken of this + TaskFactory. + + + This property returns the default that will be assigned to all + tasks created by this factory unless another CancellationToken value is explicitly specified + during the call to the factory methods. + + + + + Gets the TaskScheduler of this + TaskFactory. + + + This property returns the default scheduler for this factory. It will be used to schedule all + tasks unless another scheduler is explicitly specified during calls to this factory's methods. + If null, TaskScheduler.Current + will be used. + + + + + Gets the TaskCreationOptions + value of this TaskFactory. + + + This property returns the default creation options for this factory. They will be used to create all + tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Gets the TaskContinuationOptions + value of this TaskFactory. + + + This property returns the default continuation options for this factory. They will be used to create + all continuation tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Represents an abstract scheduler for tasks. + + + + TaskScheduler acts as the extension point for all + pluggable scheduling logic. This includes mechanisms such as how to schedule a task for execution, and + how scheduled tasks should be exposed to debuggers. + + + All members of the abstract type are thread-safe + and may be used from multiple threads concurrently. + + + + + + Queues a Task to the scheduler. + + + + A class derived from TaskScheduler + implements this method to accept tasks being scheduled on the scheduler. + A typical implementation would store the task in an internal data structure, which would + be serviced by threads that would execute those tasks at some time in the future. + + + This method is only meant to be called by the .NET Framework and + should not be called directly by the derived class. This is necessary + for maintaining the consistency of the system. + + + The Task to be queued. + The argument is null. + + + + Determines whether the provided Task + can be executed synchronously in this call, and if it can, executes it. + + + + A class derived from TaskScheduler implements this function to + support inline execution of a task on a thread that initiates a wait on that task object. Inline + execution is optional, and the request may be rejected by returning false. However, better + scalability typically results the more tasks that can be inlined, and in fact a scheduler that + inlines too little may be prone to deadlocks. A proper implementation should ensure that a + request executing under the policies guaranteed by the scheduler can successfully inline. For + example, if a scheduler uses a dedicated thread to execute tasks, any inlining requests from that + thread should succeed. + + + If a scheduler decides to perform the inline execution, it should do so by calling to the base + TaskScheduler's + TryExecuteTask method with the provided task object, propagating + the return value. It may also be appropriate for the scheduler to remove an inlined task from its + internal data structures if it decides to honor the inlining request. Note, however, that under + some circumstances a scheduler may be asked to inline a task that was not previously provided to + it with the method. + + + The derived scheduler is responsible for making sure that the calling thread is suitable for + executing the given task as far as its own scheduling and execution policies are concerned. + + + The Task to be + executed. + A Boolean denoting whether or not task has previously been + queued. If this parameter is True, then the task may have been previously queued (scheduled); if + False, then the task is known not to have been queued, and this call is being made in order to + execute the task inline without queueing it. + A Boolean value indicating whether the task was executed inline. + The argument is + null. + The was already + executed. + + + + Generates an enumerable of Task instances + currently queued to the scheduler waiting to be executed. + + + + A class derived from implements this method in order to support + integration with debuggers. This method will only be invoked by the .NET Framework when the + debugger requests access to the data. The enumerable returned will be traversed by debugging + utilities to access the tasks currently queued to this scheduler, enabling the debugger to + provide a representation of this information in the user interface. + + + It is important to note that, when this method is called, all other threads in the process will + be frozen. Therefore, it's important to avoid synchronization with other threads that may lead to + blocking. If synchronization is necessary, the method should prefer to throw a + than to block, which could cause a debugger to experience delays. Additionally, this method and + the enumerable returned must not modify any globally visible state. + + + The returned enumerable should never be null. If there are currently no queued tasks, an empty + enumerable should be returned instead. + + + For developers implementing a custom debugger, this method shouldn't be called directly, but + rather this functionality should be accessed through the internal wrapper method + GetScheduledTasksForDebugger: + internal Task[] GetScheduledTasksForDebugger(). This method returns an array of tasks, + rather than an enumerable. In order to retrieve a list of active schedulers, a debugger may use + another internal method: internal static TaskScheduler[] GetTaskSchedulersForDebugger(). + This static method returns an array of all active TaskScheduler instances. + GetScheduledTasksForDebugger then may be used on each of these scheduler instances to retrieve + the list of scheduled tasks for each. + + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + This scheduler is unable to generate a list of queued tasks at this time. + + + + + Retrieves some thread static state that can be cached and passed to multiple + TryRunInline calls, avoiding superflous TLS fetches. + + A bag of TLS state (or null if none exists). + + + + Attempts to execute the target task synchronously. + + The task to run. + True if the task may have been previously queued, + false if the task was absolutely not previously queued. + The state retrieved from GetThreadStatics + True if it ran, false otherwise. + + + + Attempts to dequeue a Task that was previously queued to + this scheduler. + + The Task to be dequeued. + A Boolean denoting whether the argument was successfully dequeued. + The argument is null. + + + + Notifies the scheduler that a work item has made progress. + + + + + Initializes the . + + + + + Frees all resources associated with this scheduler. + + + + + Creates a + associated with the current . + + + All Task instances queued to + the returned scheduler will be executed through a call to the + Post method + on that context. + + + A associated with + the current SynchronizationContext, as + determined by SynchronizationContext.Current. + + + The current SynchronizationContext may not be used as a TaskScheduler. + + + + + Attempts to execute the provided Task + on this scheduler. + + + + Scheduler implementations are provided with Task + instances to be executed through either the method or the + method. When the scheduler deems it appropriate to run the + provided task, should be used to do so. TryExecuteTask handles all + aspects of executing a task, including action invocation, exception handling, state management, + and lifecycle control. + + + must only be used for tasks provided to this scheduler by the .NET + Framework infrastructure. It should not be used to execute arbitrary tasks obtained through + custom mechanisms. + + + + A Task object to be executed. + + The is not associated with this scheduler. + + A Boolean that is true if was successfully executed, false if it + was not. A common reason for execution failure is that the task had previously been executed or + is in the process of being executed by another thread. + + + + Provides an array of all queued Task instances + for the debugger. + + + The returned array is populated through a call to . + Note that this function is only meant to be invoked by a debugger remotely. + It should not be called by any other codepaths. + + An array of Task instances. + + This scheduler is unable to generate a list of queued tasks at this time. + + + + + Provides an array of all active TaskScheduler + instances for the debugger. + + + This function is only meant to be invoked by a debugger remotely. + It should not be called by any other codepaths. + + An array of TaskScheduler instances. + + + + Registers a new TaskScheduler instance in the global collection of schedulers. + + + + + Removes a TaskScheduler instance from the global collection of schedulers. + + + + + Indicates the maximum concurrency level this + is able to support. + + + + + Indicates whether this is a custom scheduler, in which case the safe code paths will be taken upon task entry + using a CAS to transition from queued state to executing. + + + + + Gets the default TaskScheduler instance. + + + + + Gets the TaskScheduler + associated with the currently executing task. + + + When not called from within a task, will return the scheduler. + + + + + Gets the unique ID for this . + + + + + Occurs when a faulted 's unobserved exception is about to trigger exception escalation + policy, which, by default, would terminate the process. + + + This AppDomain-wide event provides a mechanism to prevent exception + escalation policy (which, by default, terminates the process) from triggering. + Each handler is passed a + instance, which may be used to examine the exception and to mark it as observed. + + + + + Nested class that provides debugger view for TaskScheduler + + + + Default thread pool scheduler. + + + + A TaskScheduler implementation that executes all tasks queued to it through a call to + on the + that its associated with. The default constructor for this class binds to the current + + + + + Constructs a SynchronizationContextTaskScheduler associated with + + This constructor expects to be set. + + + + Implemetation of for this scheduler class. + + Simply posts the tasks to be executed on the associated . + + + + + + Implementation of for this scheduler class. + + The task will be executed inline only if the call happens within + the associated . + + + + + + + Implementes the property for + this scheduler class. + + By default it returns 1, because a based + scheduler only supports execution on a single thread. + + + + + Provides data for the event that is raised when a faulted 's + exception goes unobserved. + + + The Exception property is used to examine the exception without marking it + as observed, whereas the method is used to mark the exception + as observed. Marking the exception as observed prevents it from triggering exception escalation policy + which, by default, terminates the process. + + + + + Initializes a new instance of the class + with the unobserved exception. + + The Exception that has gone unobserved. + + + + Marks the as "observed," thus preventing it + from triggering exception escalation policy which, by default, terminates the process. + + + + + Gets whether this exception has been marked as "observed." + + + + + The Exception that went unobserved. + + + + + Represents an exception used to communicate an invalid operation by a + . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the + class using the default error message and a reference to the inner exception that is the cause of + this exception. + + The exception that is the cause of the current exception. + + + + Initializes a new instance of the + class with a specified error message and a reference to the inner exception that is the cause of + this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/ensureRedirect.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8+wp8+wpa81/ensureRedirect.xml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.IO.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.IO.dll new file mode 100644 index 0000000000000000000000000000000000000000..32dd41b780e3abf07d8bcbf35ba532ffc8d4618c GIT binary patch literal 22672 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.IO.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.IO.xml new file mode 100644 index 000000000..e83273427 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.IO.xml @@ -0,0 +1,51 @@ + + + + System.IO + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Found invalid data while decoding.. + + + + + The exception that is thrown when a data stream is in an invalid format. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Runtime.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..118fcce204348879c199c5ebba06751972f7f298 GIT binary patch literal 22176 zcmeHv2{@Hq*YJG?^Gqb;F=Te!$4tmPWDJoI2M5P=IF7LaM~O-_5J{1QC}}QA(xenA z%_USQLMc@8@B5g0dY$Rnz4oy7-s@g_?X}n5H~Tf&5C(!EEci`M zLeP2eM1nB`{xwJj+1!#BxuMf+ccspw?Cwgr29u+4kyJ_$l^BlmCq_h2XgEI-jv5nz zBS+xO9bItYlmHT*i;G=$nzWMz1lgf5&|~elt~0H@hR{+RC=LkX1u4u^sR!`ji32}l z@I!KN0HUY*jU*ubXM|(`LHc_%3XIElGlK|12O-9I&OVSt$Q;mhM)9BobHE7)LCJIIpT-^-SMJH`efd*9!ov)*uUD;;!Xm6Qrz@24kckefyVH&Qw`Ela~>&;9f^ghv!%aLdbW-{*;;ey6A7wZE;6>AARf`g zj>aeeMlmZ%px2=Q&y=Lmm<=-#1;834hf(kkPf&7U0l+ku6{aW%R0jd!Z>%OB#%sVD z1U)2$2?_&H7BnZb5rVS8vj~a1(5U2yplGB7448??g3KxxNEgHrF_f`dWn&JW)&MU8 z9g;B(qxb?a83l^a=03GPtQVrxiBCR8@6L~L4oE`jFz)t}DM8OY9Lw=y{Y#iw; zl7^I?dNM=OC`B-(G#IcIbr!`8^`V#m#G(->&Vc$1=*xf!44BP;#~84g0pBtpgh6U4 zVU}Q+q4$`_7&GW62AQ&4SW5s^8E_32X_3l+sUQUjQ@ufWS`098NRg3-;JgqFSpuG- zz(`OiUMLV?oFEQT0G7hYLj!sURxpjRFt9Vz7%Kz2J6#Xq7ccYyVnQ(iDhMBfQ3$_~ zaDzz&g`~9N5G+kt7tlmQ9a9*q5lRSXkRAq>!s-I@FwoFc9-|}{8lS~vk^V_RARtr_ zjBNqNH;eItJds&U0gMFUMga%sk7|@0R zS2Can0}>gK%z#l0n81K30BS%x0n~%?0h9&rLKpQKNEi~YVL&OsV=mC93^WL!G6SYU zDQG;z0hxjn0q7urqR>MC%^)I3kA^4!Iztm6#TgP}#B~5%2H69+4vGiRmQm7$k>bgS zheAPUUq)O0&^G8Dl+1{yGU6ow@}n9Vu$uufD5Q)GfC^yc0L+25q9g%_FyIdbVFAP@ zBOGI9%n~Hu2(krp37H#A;D=N}K}(Pf5O54=hf!qYO<^tzFpmWoaREkNfJH695*A=7 z3$Tm@*vsIFcaDjmk;6&&fUq#g z#tB(|Nzu{1gz0R^g+`>2?1}!tO!K%lKn~1kV$kx zg#YiWni0c5NqbVbABpNf44+4ID#s2q2BV`N4DF45rEVn(4pKBh$fP@vc?$)vD=1)OEji6w@`kf7*!3}+;Vk`jL9 zw;PEX4SEeoL9Rq9=#(X}nMiRIYUo_&XGU*EiA^8-L8S zi3p@n!-)vnh+%(P>Q6IV$+WO}FMXz)=A>wUDmfCN`o|{CC=r3=pcwG3f13@YHXz3T zHv@E~5(7x##NV?foJpAEwdA__=0UHBR<^XqgF(ClO2=qA$V!8j#{o3)T zLnZi4M|qAH#FpmX0wS1CQ-?NJpkb{2@9jd*#ns+ zBeI4?RJkAkz%oQFEDKg9Boj$pSPA8Yf|T(N7OqY}ry)|IGCf5N5tCE}%%MOq>kX%$ z8rpyY_o7+7Vor{Z3?n8W3VRVk1UEwk=Mv)w6rd&wQoCA#vnTsgDbbWb8qSPD12POI6$oGcx^lZ#={UKjDpxrW5{6vc0@l? z7%M>wRwwA<2@r%sK^%+>Qz|jSKbQwdF^L#W@-j8E^CBPx0FyYTS0!Z3SXU}gv5)`? z;{HW?fsqH;2C)F!krV+Ki`bAz01?Feh9C)qv94$#cPcT`ff8X6?@wZAE7xEuB`%s# zd1fDq)D#0L3Si%-z=Oz{xl0S=>e?;4eg%E;q9eDZ>^>nC{Pn&3yfk$*30~?1buBNj zS@R-CfF&)Q6hH>^!fRm{@v-W7ExdnpB$X24L)0Q^`fCIdyk6NMIKKAss1)_zqSZLl6z@{bm9UqY0vJkPGAkpas|qxIi|LBjf;Z8vrdq z90`}OgFg{f$IO_k?6c41jNB=A$J8vIP5=*c@IwKrM2HILkiq_&1ZYNpy&{ECNETTT zfH_D7B_hC%Bn&)hpd1BYQ{e>mAs~tZeWHO88%ie_WngILPZRP3ap124J8=}) z?@*v{D3Z}e0vHhyU_dW{U=Jwz1G*GsHw1b`144|Hrh?K4oZlO3hzHP`8HG8Z5Y4Dd z24&~>*#$}fIW&+T4k0_M7|>@Vf2K`Muy32A;|9u6LHW5ctAkqF;70%>z%xdHyf*<* z2jLt-mkORlz^l2D{8gKHC;*g2JRcCW2~q=e>;R1*1_flSk)Xc_XM><%KplcA01y5? zU+|zb4l-f1fSX4r8l+M|JJF2(#sU}sMuP+=##kJu%OY~C_Y{$&5%#6aK=sIW=w#W!JfEUk8;epvODB%A*gieNFsd@FVi?pKi0$ktq zDa4%l5Pj%*T1A|yT4@noFcGF>YhgO3qzHpXq0s^wfTL>$)JERm@|Wu~xVr}Cn(Y{h z33MTj(Id<%EVBT5l?y=t=3@p3s{p$@F&elyf@qWo0x!&sB(eywIFkaxDG>n#30MqC zVHfzlxk`|NC6RoLfbg6->k6DIs=x^l9*J`@Gl3-*a}hLQEp-io4nc#UwFaPCujPf)a^Obw?UEgENMitk~4uA=t|6G8G7hzODJHg-k=cPTDoqFPi%494aJ+e z`XxS#x5vIdm&?L)(~o%i?9s25ixe?dsz8qa+Y!`Wke8uwC!``mz*{?WAS`S^5+xiM|Zq*Mv?p{CxNk)~> zQEY%COt3g$sW>-Q2)pQV&}%$ew3?mDr7xbey)aZdkZ+VBJK{1}VOS`6k&NcpQ)kOa z_5tJXvENTApJ>!N#RIz{^(C?Puq|v;WL0F5W)@7NMe3`m`BTI2;WJwk#KeL^VeQ}*u=NZMqtgtg8;FaG`&|Ph z>R(W%!2(Esmtr|#_8F2G*7@QBCL$0Q6ohl3XCFUe@32wB=GLiW*BUnpw(@`Ck>8r+ zS#RX}-lWeJqpW!GrE7Zah0&+?Tn2cB44W(?Peb=VX?mBHNUI!`?hGxi=i%DYDuEUq zj6a)!YgMV_py}d|@J>G4S*c=dASZaV>ebbj6}vHaL%R;2%op*tG9P|Hmwab^`Up9{ z0pGVp<~?g0`JG=!)bIzHdMVQQVfSmhRi6vR3m!E(^k(yq#h0%*3O+wNRDO|9x$2v; zmQaLe^iR0;d*$w;S9eXHX)oV7`dVlEQg;XyLhhOkZ)pnm&jha7+PW%X`!o{a@y(W^`QIT z66&ru7gGyHmTKmWxpwgD>GG=`4lUic@uuJX7cB#ZnqwC_wBU>V3F;M{6;-S3?UL-= z8U;9Fhgrs(t*XAKw>y_gD10+iZE4w*mlj3hYuVhyW}enb>8bfqWo%wru}x+<-KMZT z*TYG`LpXZUjPscC!z9=^Xht#l0#14TZlYr5X)DRKUEWTaZfTcS7_?w}%eI`kQ=ba2 zL?$;M7U+w^masYDm-nLq6A)2i5>Nt*oSv4lpC<6s1QIk)y2d^O{bir;PyCm#}v?+;ognYLYsH(%jt%Rt+H8c7Ns6Yo8D8U&Vs6eB?rvm?kHtm<0%g}dmULPLs zG`xFhUFy@#6(`IJqt`EP;u+9>e)Eiq=-ThDO!}!&#wl!v&PBv#w#uSvU2IUCnoPKd+A9@izbR@Wh~KyF)`Y_aLs| zQ|C{4@80W^#IH-*6xgK;JMKo(4+vAA$TTOan0=glf93T%@uLU!YCz5umh%tN!(JU` z)+)Q|l1Ac-W6RR=xbP&c9Qrv%*q}19ovH9jLwg)Gtk2#A6?(4a&Yp4mIL>BdD7ebrHna3nf^AfR70a`Ur5%Ma=`Ba2&66IdJpX*@llI{z zFN+t|#|&R91n(6oE2T!e4KLpFWSkS`)@VVTxYOigNpQL#FYv|~ZlNmjDoEedaWE`WH_X0UtjoOF%fXGV zpv0tp&i1jRe@~mL->`*YPZcZl)w1}&eb4Q3F1?9ISA4Q;(J|0Ha5~Pbbn$`AJA7Gg z1`SngK9~nH8f-1lU~6C=L^BAWP?K0D7y};jwAXJn31StC^I)-H!;l8^GqX+aM+8w= zCI(?({?4YM5sPi&KEdIE+}51VJl|#I1j-SEx+kjelG#Fw&{$3hcCe$50lRH8$Yg;o zHa+}Hs!QOCJZuP0M$S0FK{QyL(eEl&a(Og#kfZOOvndrwTNntV-I2BDPmd*>v7wF{y*Ej^ z-O0I_e5Z6jPW2my(>1rds@*Hv>LPo}xej4U-Cm#HYU}9d3!XWl?jKqQVPA#>9qP9tAZ^PkM>pJ+%Fj z{K*7=H}gX)?~eDCtaf`@fVMDK^BH+|{2^UE;>Y0}fj1w>Jr##kF5gn-M{>T#dUG5w9WEP29W7dqelmxNUO0@@6)fV4+N7dmU zq0|@z(Z`)nW@-qLB)GS}Ap?!6RtkmdP!zwExhlN7QuJ@jNeB?im!?yY5nd1`E$9H#To5 zqgnEfhU}KYPa{EMDnHisq>I1raVRNnka4-4`OTt*t#xg6>j_irq46VOyMrDpys&gR zk=FWF!4fZDmFBq0nez=s<$FkWHXO0#vj<%GZR4Z8r+TIKZX9b9_{@6FCEWS6MfO2! zXoXcEpS)sV`QA4Vm{V398sAjLXSIlpesI&ks`#I%ed126n;~AS?ts_4d$%@vVa&B(_MJW!_xxVMN_$ido)+a9&M8oN@AA5=^Z1AShqj0Nop(py zali>U<-bfc?sBiKUcFDOQyi66RU7|lTWkL^)W@#NS?o-=GOfFYTm)Y_R_=P!lNr*U z-0*JCCuX(Hn7*A#veJ>?zy5d=pO5DnW$B8n6Lu)v5z0=@IbW=|KS=fZO78c5Udx5@ zw&9j{v52UTHxpLG5)7589Jk&_8cuFz7wEXkPTVo{`26Az4%?EhYbmcSssB*7fx~p& zLl>&lNBDMaJju%wwU~VociXc?d0z}J1g<`%s@5~UIjwo6TW?|Hp0FxCyN6#B>W>O1 z`Y8?`Dp1s9juY`~GL#6Hqz`f2RHQ4k&(?$(W)#N~Pe&9B9H~EQHN;Pu*s30O@@L1& zTia!t0xuPcZ{ZI>8>&`&WSxH__4dq(+y1BHU6~%5;GL@WoG6X2JXMq%Bl2|D7J(RP zHT81Vh$7GJOY4gUH{F(c^g+V0Y2Qbi*P|#BC4*zbE%L2*5%0_P-XkbZa$ooKdSWkH z{N$V3f#vvBLZM9pB@+a?!U34Bun+inVKCkPIlsh|*Y{Vq$(+-F;{k ztCx?yl`IVSad+KoTdP9l({_FbCrUTp%o2NSP1V6Fox{DjbtjrqWhfi6o4Zf`rZA`d zEpbgbQc+shZV!zeA6kFbDqkoMIr;S5t`-Gxf_vpFYB60-8K$FU=iUi3fsPggNqh_` z-0_dC`oBMUm?wkYu<%^3F$9iTgarj8a8|~c2t15q0k9_p9tv$(Yt0`dF!L4Yelg(e#2NFp3)~oHB2XFSU3V0K)tQfv?y7Uf?Z?LdYFKo4@U^x1tYkVqu zGnc`=Am@#1Z(y|u7l-^aOfF75-1)ftyW@nKkkAo>w*ur?PI2wY>^2$8oQG7eC|sLB zl=Zob1D1mu%*f4zU+%as?b5t*h09P3!JNF^z|^ zIfTd9%U!q`!u1i>sArnsMz71*6Eg|ZWhUpQB^E`X%M60F53{^RPN`&GfTSltb_hHO z3w_h9Q6vl&4W=9HHCGvhEkayFe|l2Ia9+%-i^VPdkXYNo8n;UGm?NdFa>@Cjh?fo5 zq}arnSvKYNpLvy0MCaNCOle+VN{`KR{px1QgbT@+$h~IR)VlNEDhKG&#(#@@RRNX* zHWN6xlAQCK{ObC}0e=}`>Hv!XgQzZnK+s0~zuG`bXVCu;|L@gTk6OCUCGn9aPx)7T zrd}A9{or$0?4-HJ2g?5Mk^)Xwlky*@=cb3<- z7e3E;BD>}Ch?RVOc;<`v3yq{=iq8AGs3V0{JF+s&ZZcPd_ww-3R^oy3eVgiyj#uAi_jsGRZOX|34yKZT{k?9= zS+Nv3d75zm1*is+V2wbcjykx{w$K-B9TD)>iRl6T=wclm=`-Qww`0&b ze|{MD+p{W4WHjSE3`qB^rxp=s9|WkvI;yZP!-qngVF2)yIS54CT(^s4klZF}Oj2i?{;E!V~5MUOY$ z>QCq87*$dgi09Ax8CssVR?Oy}{t?Ywzvmy{b#p!y^}qQ|nAm>-Vy%4Byq>@G?2$_( zUv6;?58V!-PIa%1t?T$%QciC?U*Y}Sd@|7PfU#VK-A{*%<+=C6u0J_`M=r3lp42^B z>;J7hToHJ*Z#&4}K09pp{#{u(`-z?S#!VZj$u(m}+`dnnYekc@9k=nNuZ?4^?cQ3M zL}4>ht_o_f8aP?*ooH}^>5K2ycFQ3*uTN#lC-8hi)m=N=Iuwq*YtLCecK%D~B)aFq z^SgBur;M*e9k(pp9`WWYlXw3|NIvzJ<+^uQ^*aZ}YDbH8EZ?S8?mZrp82j;n?K0-u zlI31inSy#!?=E#-jms|{l^uSnD`Cem{&8|=`01@H7N;xtKXLN+>N)y-)wXLUsX7>A zRHXmG^C!lGt$Yqqx3Rf!FR#rsEfUbPy=s!G29J5ljY(cmbx7c>?N9VRs1x$k`dDnC zTHoa`?bRafyMFX{e6CrmzNkV#;EUq!FHO2akF|P2bzwRSxY5AmH{)L6&TeBY1(;ui z1x`u-x2y%g1wOSFD9)_~f9^w{TNMbv6{D*TYw1lnVze130Y=b&eAS|(|9DXWja*bf zgNq7a&Q%V5qw;!qDrBCYn+arXVw+L+FVR(-8y^4iKEHA#+4XBC;(274& z3%S8flm-iSBe(zRZ!z*d;rf?{c`kG(=oXy%N0|RC| zQ=hIoxh_rgsZq^#@7@f@O(LI))jZy0FH=3PvHJQsqo3*zPGJmdPFC;I-Pl%`tn$Ud zZKssh(nh_AfFzfT`+1Hnk=b--6#2U501&ezVkFPFs(-B0vXYnSPc^yXP<8Fy+7 z>a43m(|w*_5j=HC^x-Po9=&3oJ{g-j;q&I}E#5RVQWIZOdt^K6E%UDrUKMkHo|@Tj zZv&TA?&#?EJXrnX<%z(qhP^541|ALA_Sh(v2`C&X+YpreZmVCs&q=jSkKOls)yF9) z3=f1iDrBi-8S6MUbZ$1!xW;C8{b8w@8ZBouVk{oFT1CLyH)o%bqsFFZC(;+cI^Zyp zd!o*=C@in-^`rFdv;L?7upaioe{?C$UETQYV)PdW0SkOpe>kQ`eb`M>=)2WM-xN3;HxTz@pMj$FP@|6Tc} zxf|LNII|l_K6n+Qu}13s@YJ7|m-n*YURG~aQSzDm+`nF0t8}k7X;b!wZI(`}o^bA3 z-zH)!_SwL6n{(@liO_B%7QAA?J44aZhiAm&_ULu>1vHr(#wW^r7T9nko0gh6az_qr zsdRNKZ|&ggn4wIYQ3LjsQ)cW^+E%wTN0zE3WyyWqDZz-FtHE({hWGke2y{4da zxka3W){VA9hYlttN`JG?k*xe~C6oN+z*v3gIorKmA7bJ~`rqs1CkWe4J~|~69P_UF z+mCG@IFjF!msS6O2e5WKIyz#){dXGPFLZNotWS2AE{^9@mr5KoVXs;Ky}bFbcSCV{ zfqRsjgSEvK)24!0PxfT%(20bD4VS{hLzg2^G`2aQ!a(y zYzgP>G>cLmfa{CwGajlXSOV~ZqyGEeF16X+F&ma3jm7Qh4n2RgKJ+DNSekdDKIAKl zU;7@`tgc_3tel1T?W z*I@MiwUFB@;DWO~i3YeLuM0htkULsqP5N3`sZ z6c^GqC!B?-skGzdFOJ2v+pIn8>YwOr!U#4DN3P#^1I1*1*38pcFL4tr>g zCFAyziudm~<*l~M7)^7aeop&*XYAY&PjrLK98pQOIihnWQ4eRJKBl@n{IJgCu4& z3iC&g1|6lz%rPS>yuhhJN67$BktA66M1j;yliuXPjzNK4{X%yL78hHxbB_S zpMQP0LY%8Ej&G|zuK$O?-Y?&h$a_L*uDtD~>=1qP_ks1nwkkf?8{ZPI#-1|@RQ4Pa zbdkprBuzv`a>Vbk3G7%;ggt6tbDm+}^i8g2oR96#>$09QeYv~pQ8er>M=!D9YJLC3 zD&=mytgrfNU&~LctWvpW(U*VMphwO8V%f-xfJ=u_4LG*l@ppgJU1>7+UMsX8 z#pEb$KXXd@4sfdLFRjvc@D1TsLiT5~b?YrfuWJOa*&M#=udb*3eXF$ntJ|Hd-a}q~ z!S@aKWP3iow@>)m|LsM*S*sCozrd=nwyL@Y!y^43xQO>Bw1G8R#IQz@J3=WraLO(? zC2N5}ngScn+LI_D!k-$XPPR5v)~K12i&_9FkO;oU{Tt?}6Zi;d&KyNP8v9%3D9gL_ zm0VpnUgs@OiNY8bmJ~}-PJKAi{DpA2g{iCJ=QsE8CGe@M*8`hEI==J_#b3Hveqd?$ zc-=s#t2?XmO1e4!_X{rDn@4>4x5hRb8=Dlo@LD|SHNJMSR-UYzEp5=0_f~a%(v74~ zIvdt37yFc-uwth(RISUi_={RX3h8OZnb0>k?|r?U2vKZdb6IJFmH|v@ZkC5)-Ps9j zXXHWk74j3Ss?~m;eY-=W*3W0(b9dvu;d}Xk+1n>W{E}W?U%|0cu1l|f$%-id!gW&N zjr&Uu8GK9HkQI@Gx=imk(&mM6_h ze0IV~f^uoN6YA(8upHj4KT5KS?;R_*t{i|dviEA1=c3xprk($sA`{MUWS->N2hQ>xnI%<&iI278^N9v8P=U)4>1 z<=$}r6?|o)`JMfDu6l3BzCwv5x@vVTtC{eFTt!Y=&j#7##oAA8)RJJm_)Pox1D~u{ zv~(MOu;8?T1A>e54hS5N^}6ObDeMVitUivvu0H>)N}ueU#ChFE`j#(Vp#P>j}xb(Bry3JPxC6*2!HyHbA@T!0GW1~8=n=0`zws6QX zPbqC8@WYpzR$rK+MpNQ7OFe{W`zAV-Uh&>n{dP26@34hN{JDOExL88BQ%;M-Zf4fR zF#E#=2j$*ws{ej~fLD55utQ$LBb)t0!cfZYprYjCJYQ1Xl|*Vh36`cmgPoIcy60V- zE$%o*A2?+Ld!D#QSzhv9FCt@jRR&IFr2sA@HCWK}K-1>@{r9p`Pg8PVa+Vkj3T)xr zxG%FyC}C!S5(S)EJnxi1xwMbhrIr8l5>aCncKgN6*DRXw3$8@|cD?$)yxt8g4DewK za=m+MRRKUk)xo>y+nx@tzLPgLArFG4# zuxC<^=LBqayw41u>t<5#WnRlEDrkUP)|GxQ?Yv6uC2!t{MxS^ga>?a0S(#O0d&O!` zwm3Kn@N$BT`E&(vMzJ2jH>#S(oN zUBl~UweyW0YriD(*}cu8gEf@+L#UnlEU_veK)KN=I6>*_nfK>j*S@{4))k{ zXZsjINTF`$Gn0+)(pqE1Tr5B{ zK~J(OU&7MDJhQtz7;GyDYi1IFs-H@LX|Vp>mJ*!5tH4Sy`!oUIc1QMv5E?DNd^#d5 zI+dF};f>^K&#Q|jfHUgZdpV2^Y7slkiqyvlb^8|2#94}Qzx0>!%|%}4)x!~J;4;dJUKNeR|QPlV{B|0QQPV>HN%h0!-=Z0jiF2k_bvyP|M zOBy{uM_&-GYovdJS}I*SpI^{%l%;$vf0@fsW-V&jF7kqQ4=r=0$2dpYU4gr(pnG+0 z_T-_EoA3NWdJfqX)Gq7v*=%7pfVlNovD4s+~neGgi8+`d<@6$Cmxq*(qV^Xp&Q=dip&=<uadYL4!2ayNapn5xZ}e6ZFaSAfE}SUs(!-(Tq%Shb@k&|&GM@Rdaak3?_Z z*Q%srCF?)yU2T3xA-1UMbhUIZ5?-t%mG@ILUue`KBi_Ye=+fDg3r93ML|!PWh+ZCU zEJ(VtDDwH}* zDtIeb<<{B6uUzjD{OU*6(M7Z$XA_t46%O`S3T)3b+L#(%HddC%3{6xg#lL>)85Eyslpt|=*P6!h lb6la6jWT;`5_neFKFueOHytUBSwmE?8ha*@5ekgt{{#8Rm%9J} literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Runtime.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Runtime.xml new file mode 100644 index 000000000..93cb00d74 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Runtime.xml @@ -0,0 +1,56 @@ + + + + System.Runtime + + + + Defines a provider for progress updates. + The type of progress update value. + + + Reports a progress update. + The value of the updated progress. + + + Identities the async state machine type for this method. + + + Identities the state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + Gets the type that implements the state machine. + + + Initializes the attribute. + The type that implements the state machine. + + + + Allows you to obtain the method or property name of the caller to the method. + + + + + Allows you to obtain the line number in the source file at which the method is called. + + + + + Allows you to obtain the full path of the source file that contains the caller. + This is the file path at the time of compile. + + + + Identities the iterator state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Threading.Tasks.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..a089d474db56cd4f61044339689819946c04e381 GIT binary patch literal 164544 zcmb@v34j#UwLV^5RbAEHvp~<%%|0!{Q1mju-~xyUBB+Q;fGDUq3^NT34pZ1Yqe9ao zn%%f$)r4$5Vm8fcmY02xNz6-rY7$MJI@yz##H=sdOJ4B*edktnSI_j|nExB4s_w0G z&pqedbI(2Z+*`LVz3Nq(p=p|lf6qRvX&=X(e{1D>>dP^_ZtnPGv-XkbH&6R`X!AEu z+rEFGm^xH&_Z4~%ruuq^hTP%Qo_wk>GL#w^N?maIw$wqlKi}2V6kFh--m*c{Hir!D zduRP@yIV- zLHU36?j@OpzXia1B_DuydIbs67wFpO*Wi9k*BWtq=1N_ggZq^KQWesrNCfGN0)@MV z^EVA6{o<7%7Vm^tJO=+#psK4-Ec78$XakL!g~aMwz_psTwyTgIbOA_ONwY?f^C!Ta z&)31f-IOc-NSm&OwdsG>w5Rrjw5a4F|67{&P^YGCNdc{wcdFaMum9s6e`tICnxilL zihb?9|GVn(CuVH^`ksG|e&ehiy?b{4Dc%~rE1Y}l!h3H!@w(5gdQ0+&vo<|*BH6d) zSmRhWeE1dj_9r`*9(>iw_kQr@&F+`)|INqeOxwNn)i2%M|Gl^5_YJ?T{rH!Rp@moc z>cm&K&Y1hio16E)?-Sqr``s&sPrv8UMQ6FGKjb54-k>`z5R#MCw3wc_Bcy4eVh+z` zJeldex-rR{)}^M_1;zjt*A3IbbIi;&6p%htT!O?AJt^2?R>C}C1#q6FYBU_QjFqmW zY^JsXRW@Q4mjXd1)aF2$t@J8n4#zZYwn}Om>mEeiXbIMxjhgN<6i6&J+A_A8aJ!MH z5Y$m2NI@y05)GMomTlSsd&07h=Ng<=R90M0((UAq2HU!Gp!+F3NO|j0U0Z~D(f{Lm zOmE0ETkaWvk69xiMQ^aP&9)0dE%!|1CcA!QrRV7-5hQ3fw7n>cE)zE(r}HXgwZ%Zp zazg>y?pY}6o{dXxww1GrD+GVd%azCy3RSLD*8Mpv+oZdz@X9JuYDdyaPRCGZ7C%J!VJVBOYaMklWtvVX@@`y8a=K%;66sSU+ApGlhcO$ zId?#Yp~gtUIuS`a>yUjSGQ+<8a%7%}%&ZZ>`SNmBVH;$4A~M?pcGeT=1i`$8jo@5} zcc4Mn(7qZ}Ek26c%r*zzIF?Nnb^+5PXja|17#Z#+T#A?A60>L;OaV^M8U=(2Y{%q& zg)ro?$7Gxo^8~{P&fCV zb#pH?>tVQ~ZtjzHbI%Re#ZWi*M|E?TL&qkz#Yo-UN9*REZr8)mQ#bcTb#uQ|H`j>N z!+Un!+#BoWzNv2RH|plLM(fpfVcpzv-P}*q&HZcL+;d~~YP+j$?$dR17dF(x;MUFk zXx-dD)XiPlSP$>Py1DPDoBL?p+`rb%UEEZ!wrzEDUsN~uGj((0&Gqo!SU2|vb#rsm z>S4IKZtjzHbI+V!55s%v=FX1SgT20P?z`&dez$J!+?E==t8@p0L#(62*+RohFTr^M zo}8^ro(0cEQWzv+=`}vAq279BQ36hMEd5E{=;#Q`EBY`lDpEd77^#<3Qo8B9kl?d1 zmhHzlf^jx(xK|*nF|#S+!Yz(9w1k`;xZe(^YBmbrQ!VVh!EGl15{VYgxe5=t=}wB{ zh*WwtGLA&tYncE3u~;N)MO=(cv8U1@_~bf9t}AwF@Gv;G8`^Q);df#@p9pc6#LjXF{>%tX?Y1jc7Wn|mr) z0QM=g;6JRv%{~?07VTs^Jd4?u)2|B6Mi~sj8fHpy{bXy2l*YgfNj2O&t}US!9e$q! zPc4>c^>~gPU)UOHv7CL#wES{i`q-!2n*5Y~ywzOsE|8;;#my4*12_k8U3m-g!&%2U zfJ8GKrP6hHaN)ql=wIcgnTpIrtNrw?0FCC_D`?{;$UF$h6PY-iGA{ukGtWnL3z=k* z-N=mG#YS0pJ+H}~x5%y49?Qnfrb>BwYpb?C`|Pu0jd1Dgc*Ge($)|ie(s4VjDScb0 z{n!pQf+&&qjkqIGw;erkHr9$$YY9a>aYn4;O^%CtG8rYLXh25UW-}^c5nht%sK;qj zH1}AAERF5=-=Lvs5*h*x853zY_=0RTb*n{hG2&*WaU)8LqiEb%OGFwsZu;K8dGmEBAaEs}q4Ii06oYKVw z+LqxeZE&`=X`t;CH9wA;9}m`S-w{VoY0{$!sU+HJ280kdJsYcQYu2iIXpdMAOmEd* zVAiq%^TozY#xU<9zKAq?M0BBe1BkzcxtJ79*CU=HG)8idRpyjm6g!7eV*=ju1@D=_ z3$cV0UNM;p`R(lIMRda0Eqp(|hObp>__)|zQ(_e3X+J~iSY((J$iAIqpBRtz@e0<5 zgzkqxw~RTZBOoMZZNU796HJ+quecu%dV86#UU30-XpE0$hCYkp7f+(Po}HYuz)9ML8Z#&KB6xa{K*|st1byu@tp(b z9ftW!aC%Op=~+b>>DUn~-K{c27H}zKVATz&G7TGum=`#NpyG)lY&H1T%jD96Phe|n zLYjtgAA@IgM2Yz(r3n@Yqf4}6fXqZ|xY^83Q+6nFyd^9~DC!r04f;}Bs};rAVrOpf zOpqNkL0iMwm2s5=s{^|tLxr+B5m*sB3foSjW5uC~GG;V~O);^V=4M!;s>y}DdHNVx zvtfUHOfX$`?xj)NFiC~rJyGe{!Exqs8D}c5UI!+9AK~g{MiTw31%ZSnpHt7GnOR$p zIxm9we5#UZnmNxFrL|wRg&
%h5?v0gVkCjhaL7b6R8hIX;E)4ccfeT<~Q87(I*mkjW`k$~ljDa!@9G6S~j$Fvu=GMcDY*(FoUF7@q&rL70v z81UAigRbSTD`vF9NLIJfuzQA!*lVof40U>Z&7T|}3e|v%9O#!qR+H5qZVkG&3o9v5 zql<5qO@xhz`%;h+(+w-)ybMoS1hPE(n2Ab5;<{$PZo?*6+SbYIq_g=vYEdkC*dK)( zB5kz>_+k5MY<;H9S2z20Su@c%Hcv%R9jiL`3OqBCbeng7CGS`0)0DrD8@+lL){t=~qvD(T0KV4hiL|&TmS19! zC1MGXCq5R!e^RH1S9#3Sop~hh5;oWEcz>jdHR<6|J}&6HgZPx(F7t44{H{(!j1hFI z*%_yk_@zc0z4tm>kf=AnTA*#w;|DY92~VaX|Y%qFX4Id90?mW-k4wzOuTjb4DV z{Hs@Q9r=tQdpr9g%_< zsSAw}xN5WM_GcUPxM@1C0fw=q#t77Ewgh>R9X6fUGJB>olg%G+$|m}W3$!zS*QF{WMg9s2Q>zglm7iHJrIB9`=So%--VR z(%pF9Vz)#pvyeF4aT!B#qi5m4z&rN_xM;j)3Z;fN@zBG$6Mn24)OX)O_fE}rF%55*k*)I?mCoULCBLx@a=ALGA*Y>cv$>(X;_VoN&&Ras7 zbya$!p765`;neHb#GRyG#WJU1^iosx<1oscp^nAutQB6kDY;|&Q!;TkyPre>HC9<# zJW2DyzN2gKB1sJK_!Iu)GB$hVe(lw_8*pgifc-7rgPQ2+FZP=?a=a)dHhS*MA^9A1(*cu#4 zK9j;#aKa0B-oXkW#1LI_L3a&uDv6tzu)O~;B3#IH)nA7PWO6aFa6JYw(|IS}hMkb6 zWx#(h(}A=z0$2(F8qB;3&Ow2>VJY5hI%fTBOnx%-K}~G|_=ln8nq-ozo0*uEi-u3O zpAI=C(qYR*geZ0kQ%T6&l>Rp!-YUKuKt~j;$W_6?QY*Z+!droR4>_m&6&(B+z=acB zD`oxgH!QQ+bngdP(u1Q}O8Iaw00Fq>u={{O5+7*O#^dwr^>G5F)D7LC53Xp8)zTPt z-%BFr>F)c4SoV=cfS*tJwv$!^z>Dw4E2j}pPLq^&;GJiO9^@nZ6)q#FX$?Dg>XjL`3gFGOy!uC z`%x*NUgfZ~Z0Y2~vYoHeE?{ZATAvwqK8Q?@D9SDa{GcmtY{|9hCMJ3g7_?%B)#hLd zndvmPjDi%?`FB*3GmI_pNxBnvK-!^W@U=|n=_p(q(|IdOVFC&_f-8?Dxo^_-qv(5P z;U!Q{2eVPC^=K{t4$cHz?$SPJ8~UVi6vd-ixCceizfo5v8$%G#DuNP=o{^Fd`?3cQ z(VB&Ku_}lPx}qQjF08?&V_U|h`m80(S#H^ z5lsrziRg?+X!-=?MAZERg%4t(Bc@&W3~En`h#Mm_B~ndiCSjDwAV*~jmlpIVHzOj&YEMiNGvG z_C+9*Ia?AKn9Xh_I&}{2jt5WF?aLQ|jKz2=e3xXP%_u%7qSc_=?#FQVi9ii3k$$P} zd;!@rmxqnS_Cy-RfzT}c62%P%jh{((6+a7rW6&)qiJ`ln0>8TZXVZ9&B;(YiCBptwvzqBbiYLWM%(ldXJcd` zHrCiVW^|5e(nDb5l^@lhH6%164@`{UH_X%w7tdDu&QbI=GZ#lc|2lXoLfvA=m?ing zz>kT49G}3xhDWTIe1+9uH-qIu3^9tKE&Z2*-G)Ybn9|LnP{FMv*|iE^tt6@Ag}LoM zF#BnG7Og@o{Th7~mPJwXJyP>EQo}6CcfN%@&R{MiF#2@J97%6^}bY2GagC3cM9`I^#T9A>BwVZj^k$2RpHsp`zrDna%LC!50G~Z zY?0q#=tIbP5;;d|5*Qz#XZt}H+AD5k*BYZ6P(l>tDL@y$!KPuBUpfX2=eq z20Njjuwhs1Vi>^FHK^l8zxdNE4iUwUF-!7wwhIgo{cP?K>RhbNB4II|zClQwZYWBe zi&8M7(73boqZgsH!MS~=ntBXq((`raXQ-nSE{y^*8KB4nk|`#;)m!JgEVEH1Mxk1! z^Eh)VH9S$1f?i4_gEgePM!%2bF&0YSZ(Pq&^>$t`WqkqySIeNzn*nN^Oz?#}6LXXF zCpo7b2cVZO29|6?;SVhMpFn#ABNy|e|LNMVAQ?1TJWx&B$xz~CsIVb{wmptY%zsCmmZHvB5TTB;gdO5i!FdyHvO>HFA((`0jCGv z3c(7Qy1Hmb%Pw64>>#NyGwBzS3Oy?C@pEles7&xkz$4v+G{gX%G__aYj!p{S!$V49 zk~1oJ37hR1-HaQ0Yby-f@5v@qJhm`)jM;jLFu7)|P!fd;eU4?4A|dt4e}U1#8tYJb znEOjH4i?r^UP)<9&_lh|wRzel0}Qok8oCm?sjgZZ=?3U<17G0J`6IE?LaP`k^K4r) zIDXGF+zVi=(huFd1%xFN4*E(gH-Gd6q?b1OBw0b@#Evmb@|_GzbU8mjZt+ie4>M|% zFU4ykYZ>kjk*y!S3`toi)iL9_90{s7GYtl^qywqcGem&sDP^tvJlL?fg2f6x910A= zUbDTz7rJ42+C3YMJqACq&4B`2)WQ6{?V+k_2={;`}VifJ<| z`o~=NN09m$2FZXRlx<6BO{Xh49MDT_h+Km%6I5vxm6b+4A!w7PVK5Mz*Mh1o=f`aK zpWqTyA<;dI(3(9<>5y+PF=R+t*v;8uFMo=X)#g?yX>MgNVSdN8IYH3ouv`DPZ9X-; zQ)zRK{cK|lg=mkTgI;v`tX}#Bo@j3Jm1Zga7qS+{%7oD^_m{Yp31!Lroq8%boL?ai zzD;ul2dqmblqfvlV^U>NfOYTl%lUO*R4Esz8=Gl<&HAKnf%LTI4?a=^Iry?lRvJAQ zZ4-muZkXkd2Wkz?MV%PZhCY zjE}-xvl(qe6rPg!1Ht_DL$;H&CYBFHMp*3OyK_+<%@TivM9V}dW<4?jgCoz&8;XAf zmfhz z+LMB!;05;dSlHqP%fK{TC8p0O;CyC;Rfd`a#K6lr;Dvq|#tryk)%?|7K86V7U!|9J zfuJlr3*Oz0#G06py;)_$77{84+kFlzRb?*aOLD|_>1*|q?Zj;Wr{TO1?^Hh99?lKz zWn3TWM8j4FsCB-;E%!ZS`UZ{z*CSJn1N!K-Kx`zE&T`gN|1E-1@^ zaNs$SQ2C&Vv5fO^KNqx(EAK2uojL58k_eY>r`w=4h_W&0m9=CvM=*t)V*%N{f&{9$ z5spC_`0X(1&$9jp54X}Xt{5Gi5O=!0OjoCquVD(Sri+_lCCB`k|id~nWSwTbkt z9^yt-()}lesq)lw=QPbwz}@~6>?Yy_!cjIZx~N}IoW%vec_e+CDxSsObduy=gxqXn z8zaCi!!gLnSg(n2?QY(}Tu%@`k+%6l$Y>39faX!6<*>(Byt%m=XmK&NXx|6)lpp+C}mlXf@||@Jfk6I9&=twO_qB4NF*K3Scv&9tow}!EkgKxy9!->|`5&y^nuo*+R zlM^1bwqUt0pkUT8zH}XUnsL&kY`XpQOe7E^IEYtiY!N`LXpoPcd@oPQ=~y3i&P8pC zq?{4A(%Ab-%OKlkCB|!<;p`BSXnzXd_oc>qB*qicv<)I#s%v4<9DgR`&_1=R5W`b`E=DO- zLy5r0YgQ!9bQ-~bXFAciVhl)atY$`6K7yyH+eE>bD?W_`f|ZEL#gaQ)!zrF{ z4b(JbL6g`Ih?w{6krs>ZoNGz7msx@*XJ*f?N$Mx9odA(gRNT59O{lxmfp5HEGEKVo z+9CYdtXA8|>L+JazYvSt@-fz!77vrYcsQ|o7uJ_Sa$Fd|j^A^UmX%l=``>0FF*ZZ@ z`=Ka1NtbFwTf}+@DP6A9hw1=h|SrG z`$mY%cn2ARO)Xsy%(xYB^ZAzn3hO(bbe5lPD*?6Jr5i}cS7Co-RB@>pw!0fwG&ubc zj$yQ^#mkWwo2H2)l0Drjwt`~m+m;xLY1$~J8m8rR1I}&3OKg^*(~`|7fLz1GGNJKh z=$o6`FzUp39M|E0-2{Pn{@0xY*bveVsi@4WLG%%cmMPi-=;0|Z(e1m$DG?gxDjK}J z@wKYO-a7}nzoF&^97irf{q$Qge(M<<1K%6Ki|$;8tI_rQ^vPs#3m%Wr>Lk=7&5&#+ z=$Nt8mWPbqG2<8w3!IS+fL6{3#Y7Lf%!Yz9!iGW+#^3%}RJo7=T@>mu7M9CwCc5vv zKqF%v42yO#WkerV_kCDztSb?TRU!@vS9xtY4`nv7jH*jFitT8ph3ruYJXqx3* z8uj422lV$#SO&Vo%vc7y_VGLe&()G%M((Fp!wSsAHSTIev@4ce(qb?4pLe1jX8JD^ zOQ-pd9e-K<6o|7K|HItR&)yl?g;4pDwnWoJEYU=_6^)!UIo*D#-)pcvWyLFj2>bVU zM0QEn>~4;S?Gi#w*h!$EKkY-S?0ER?EwF8B_tzzU-d)TyXnFa7ZTpL0$ra2ZpFDJa z3p>;CEo>qKo8hw;4;LYWSlZvf5;^Z63;+wwMRtR|YV72*&srWyDeiLZYV?ycuF8ZZ z%PP(TaI0+{rKIDCkvSk>)d-5}vaOwsv0^Wh4|`L4)%Iqhy8-(LDM#T}-M${)LAJ{jn>a&kH=X+%$O3$Aq23U|L18>zlg4|cSC)Mup@6l569KbxFgIEH@6^|(Izpz1{1B0SvA8Ox{V#P*1{$@TCg)Q zV`FZb9u^j4kAsoiDqk=~)plQxG!ZLt%VV~cP}7j)+?m?ph+2bu_h59dWlK{1$2?-gh7 zPCTZ7<(TtYyi;y7=49fcCObOzsCTcXfxCj%#)JRcc^$3JYnTf^N6n9cL^BfNz!(1J zcV=wyvNi3b4sX1gsaFu81Ae~8=xE)u8|p>W*oop-f_GZNtApbY?47oSI^xywo_XG& z%xz@0*1eE!ou!uY@X5Vos*k5F&R}EydW^hqgd@7%HM&UhO1qf`W_GrCzO8?oIeaxt|QpvH*Rb!MdSm`@+AJ!W`@Xu47%d%10^3DHEe#_=X@z zqiUD1_5i$u7m^3D8`E@WB^WT;q4wn}MWP<7&~LD97-5yf0mML!Mx(te?jX1mYmK%< zoi04Yk_{cPCTzOxz=ve`mT<+(P`gsDECO9|E4n0$%Z#g+H;yi4(|jAsoVi4v#Z#LV zw>mm{_FUzDmoK{U5l47eu1Ve}-S04O9`Z~-FQM{cRb(jN4^PADi0#VR9yf7p?c^6` zx^o1)oi_+4KzDA%<1~HrE>NL6u*Fs@_S7O!OjTRh+R$Q)>SgwOIBd{uIIja7PHR{S z-Xdcox>Dlg4yTNKkIhznp{O>tmoPU8z|9J4#90Cn<)rM&v1xv31^1L!{8jh@&W55k zsE&ncd`uSUbTy5K46&&{1Q$ftt_ihYADRXM2$CHoe}DekVEdAaIag>jWN(B-g-%Rm&5>=65azQHqg;73E#D}Hq09Z*6smR7(9 zdUm2gN!U!fii@q~89dbBu zbt?yuqwk8ApTyM(>6^xVjKabf-t* zHkj_`LD8|-Gn)n!;XAl`_}l#SS_b4}$5>*N?-R?K<=(MYTq@48t|Uuu1Oj=H?i9=~+beZwTJdAB7{}fL?8#&A!xdWg0YE7&`=HAB3Ny|o zq7NZs^dq>)R)z&AT3o?=W=a0B2UU^3RB(J48D9I)-b5h_&!2+y&(l+Mu`HUH_W}?* z(@+qJ4=@2E#Cy2>sX%I!R085-xTRSfd*J-y!kaC24fz;tE`;CJ94>s-mr}UnA3fNh z6QA!7u+31^e?0qa4?Wan$Q42ydPO7EW0Wtl&1E2k!9XuvOgV^Q2qB zho?k$0QV_qIjzE{hr4+aCJ%6puGwr3H(SlNNLX)!h8hk^?8ou9jT*O;@K@%yx8TxKoF`q?CZW>B28JSdkOTf(ee^g z?#G~_(=aE;ZRLvrO(f{4(k(tysqQFy<0x$a*P>Mnz1l%heih2I=mHeYoi@!Fr2)|; z{3yYD0^3DE#mb+?UqfED!C71FbkdxNH?65;(SFS8^z8?}xImed>Q)WTxfL+| zC_6r^KYDNmI9FHSB%P;Nw@=8YnYd~kTEmfS@x|dYXowP2_5^jIcBL(~m9MN;;d6o^ z#Wx>5C(sx_YaEG)|M_p6kAkR`aLTjL0fKKB6jnAcn}T79O#ewQRZ7}k0(qS zQ>xE~WIsy}+Ee-#fEz9Mvp`*31N}^MPQM;Qk&W%gA4MVeJm$(=f#r9j9QTrZ9|iE` zLBbis18|^&GK(Gbo4zCzt-7oU^`e|_8X9acn8Gk%&W&ZZFaa@U%{j5mdM30G60>8O zvzR!>H?v}y#Y|xPLDrlZ%gkXS#KeqPW}1}Ikx0fedIEdyuJS7a)NZW@*R`5jbH^Df znimW46+vQ+UN5HKCO%vjrqd6RF<2=?=q$`yW)(Zp{OKbV4U%=vK1#tMIt@j znC|OFP44axM=t!YWI6-%(6*9PY)A)HENzi!oZl3xDQX4~IuC;^ZfRM^PIHp31j6j9 zKR&BrV8_hM`37LTE^;Hez@&^`0p0CyF^!NKvS=r8fFk{D6)(CNb?@=o>;1^h0Wtd< zqH~N%B09%hMCZD^=-eI1#qkVSu~q#ZOM)*(7P%p$uXnA$+ZVtKwZUcvLShe)XG+A^ zneL}Tny`!wA^0{@89FbE0<5%!Y`dxURGqcC~MOoTXKJ<#7s*=2|WznK_R$%cXE+374V>`aP!R`#lg4eYjshKK+!B zG>NiEg-adZ*rE=PRH!~p&injV2KJ1I#mr%s7RR^>oL_@Nsm!OGWQC7aXeP69d}$)~ z5!=E43zTN|T4Fcx5mb%c3|RWyx{6?fLts^~&uvBRBh~%s+q8JUhA@{Vd$%!P)bfRJ>g*3d%U<@297cejQh_%3Y@#!yxb!RCak=Ng zWt*(3GgK)P*Hbk0xaP35 zFH-|x*S^X-^Vf3oGVbuxm4{3w#rE%38(wthJA&!`a{U>u>Bqb&$vhucrd>T~T&yA7 z4_0;e=K^g(hY<687qUFtg16jH9yb&mtjA-%+88d4dja0Q^6Cs%2KRnLVlugF#z{Xn z)6Y1{#t_lB(H2%GU0ypu0Xk}8vH1RkqU9+FUeL3GO5ATc$lRq%Jp$b-9$L^^U!wXM zzt8zH_}EX~M;+|;_4FfVt-Kdti6*PME@Ua)2xqoo2OxE$!B%X4+h^NWY%jMJ+Zisv zvj*H~3K}Cd-8PbFlb$L@5-3Hb?t@B&gDO?C`s9<$y=|0STItjZZTA~|om!~9=-p~< zhw}p1LHRSX3;eQ^`K>1Q?IjC~Gkz0h<($F*`N|%$n`zX(-BIagImFXVaf~5u8H3j2 zu51hETQFhHAK4hX^HN=%r0?mi*CVZz0@LC$)^Y8XG?h!p_ir!#B^NUUkm<7HWJ|%%kXL2WTI>< z4_uYC+`j>8tOEyU5lPgg6rxHv5gfzhaxfjk+~gVD<#d-D{YsxVEv;cyR9M0a5e_8G zMse16kT`5wasPm-@X~aDCl89;G`2`mFm_T!3&!GHJ|fN7mPVqz@2KXW;j#MJ{5m;? z6B0i+6uU5llAN;`T!YXKpbd&U;Wfl?v>Gv3mTH0j0Ge65%M>9@+G0&BQ;t?bDz@6n zN~zgz=uVsS z^^L%L*vLtVYc!6vd1e)#H7V!YMwB7q#Q4DN=O@$raTZ@WXucrRmV0pHJ^EdFF79k*VY&iE$8|;wvc?{ z^sH!9cRRo*<{7cEb{ba|^1(^2D&{k$MYHhsP6G_dt(p(zxq_b7Fvcz;+m53T#rIrG zdvd;tKQ`dYR_t-Hvsda4zMHkI>}fWqTaldKLjYS-AhW>EiAq=IT|K!f+CJsd!fW+R zNF=LAj(F$z^2@;K8?|<}@9{||Jv9qUqN~&c{sn}z*7Q8{!aWsACH5MG(Z+d~;#dA$ zEhvGSEa1j5m zHcZ+K0kntEVtkuE%6Fj zzHv&jd;yD`w6@|_+=h$z+ny-5BRx)(G8XSfz3_$NDeT79Vsjf(I{F&`dm_uH7rumQ zxog$m7-3tx0f%tIUM@!Rt=g}sTRoN!o~?izy4|xK9azU`k8h4l4K{%5LcVWN_%+cZ zV1#dYIfKnkH(Um7xpBq8oin0~m)3%CKMbcJI9v?In5A-uC$+jTRP51#2``hy7eW+m zPB$mKfe2EQx8cac8jOswlze1~(Ml%2-p;@l4Ne4YQpIN6u62LbpX(ah>%i{__*E!Z z-Gbx*U+8UCL zqP_4I;0QcQZ3sIHU?k`*xO4ar)_J%RHvip8xyCIV<%}bhr#t6Ep$byP)o_fCV3tHR zX^q4qx$W?SqMjd=P2ekZpeSAmb!b3QiEU(-;SfuHc?7NHBuy2@a3$s2>J`CB^3fI? z?(ED%5$pj3N%%%!^#OhZkS*Kp4&cY9K5Fz($vYNdbZCtxT4R~H`0WAw@KemiBsu2N z33G46bifV zJ6GW@XOF===Sjw*sgdrUNuEiI+}Pn7K{O~5@@3Ix&H3=Uwma{A2-}<07?fMxVsf@ zjM%czDdO*QVhbZK_Uz3EmSPL0abOw2u?F?t-KK{jir=RW*IfN;QR2R=4Cu4Ml*5RPt*v=Xa{<^(;7CHQO$ z=eUV1QLnC@2?6a!y++a zQ!&SOXFlkPfu3yC`=*Y@Z*ZAs{KPkSzI~D?@r4F92%pZUO7E1EKOEu9ju{w%4Y#L4 zm!-WGbRDkWSId>Y3Stw>ip3sEJ5t<@;$>oT9-|B*C#~IhQS3#wI43C%8`6Q@>R$aDMff(IZpLTjw$`2O8*`tIK<)o#a0Rs8@u#x+jtvgb#!j6teB zI)TH1@&HP|)jtm7t-eU{h0JFOZkFk8VsFmpiHF~eOLm*ePN;0igY%xJaX-Q~7nLgf zyn?I5GTy{}rF0!#oKM$=kz4Cy$x!SMNk3J=rU879zNp_!oh&@F8pEh z7R<*68q}(Ib~*#{0q?rqTP4SD*>Jjz(m%m%Y^9Zy)#kCKontv z2A6evIuj+O;2lt6! zcb!)YHi#65YHAtPOYAZ^i$B7JP+E!oNWPnMTs)22FGl$fgWgH@i$NZYjWMprKjkXQ zzOE8W!VDBX>DvH31qe>LcZX$pfrq>YJF&M3CyAB!$2^}CUijZ>2^7f~@>Nt#7%0qH z?im-wLi&VWsq@atE5kViI`?Pgsv0&+BwAWa%@BjVQB5ucy4R$3irWV?aM>I!gOB3{9RLvwViYx$^K-&d3_P z<&TzPD@6e~M2eX?2)IjgAwoCX5~Oa?e`_g2ITk^{ok0HYk}cHEx|-TbnLJkb-RZxwEmxvv2D&IaNLBOp*O-GD3I+&~-pA&YZg zLPZ4@U21A^1fs;;7t;*SfCVSN4?si5O@5zSmS;>Mjxae)RhCtlQ_Hdn*EUY(UQ9*+ z0LKATMxOY|9NR!RV&}|K$B%VkTbBCHn#N7?UqX1CuPTZE$05p3aBZrR_(Cx8Stk7b z6sv3Nn6bRgL-r7$D%-#k6--}bVH`5@QdA5>%kB4|g()1XB6lohsI-x_4Vi+b#ev1Q z{1vYS(}h?XCp^&+kmt%fqb6sUgAqrn&)o@Z+|{dxY1{EP)^xs2Z;)7`Jycx+=8S;?20)RI?G zxP+@6Q_yU+AdqF4zmHUd3!aXT!Z%%e^wO(=QZKzmuCK+FUp(@+KXnaZIqeq6%NS;i z1cyk!9&fP!^=^T^2Uqt~=(=Omak>^u+9IP)Sp-*WVa;0WY1(x1IeTeTg9No(DgTDz z8vx!I(aWqnVw72XBwQxSh!6z(xbjTjV~hxO$a+B_i?GP5I+8dn?U(4L_*L~c;#HXh zMKJe0j(Z@Q?VAg13Fb&tCNHW=_f2@ro*ohQBBd&O-2fmqr2?H}^X*&{5Wks-zX_#i zuss9`B-HW9s(`2m+h5iN-=ejCP|0Eqn@if2pK-xxiKDKb{f5Dj=cTverCxd)u6~;s z+KV7V{NwrA_u>W5&lWIhosG_u?;ByuBMQ$lH4eHjX#u)$qnCurLP&SKQstVx~G%9L?;rhaYG_La|4XI_xpK zw%s;rbM`3yF7vqYI6R9SvMtp&M2@6`JiZ^e^wI}#^?3}-naD3uJbn-_$m53yHjYQ; z)$-^!AS+W$KFD$=7GHUC`iGJ58WF#O@e!mHn*^%ECbNAuJ^j2;o0nI7UQyx6ho%8uY|6?RPp+8ydbZiAlNuwnODmzj_{ZElv$ss>nB-` zl2+Wp>{Pf7yPrl%aZ9i|+%mgHXD`%J`xLK?!_wxy40PfnK5sEBSwUhM#m}HLY_7%M z@u;zWbVTZPeg&HovtTX1jLhO!Z~?Kg{TkTNOJB#;eHa(fjoU%fD=61*Act~=uRMud`Q|y~ zx(dvezX`ZHa%J`~wtUR43in&csw3Pf%N9=lRCU$^osw*Wu#?GFU;?sz1f&=ea#jnn z_o9zjs{h3urbwo3@D1<#>LZA^kDo_1XOS8 zx{3+VRCUz@osv9*u#?GCV0?KB&AR+v6>KqLi3-l zzd$3>SvhhggQav<;4HuelT3KOa+HJIJN32%gY!J{tm>phT!-KZRygIAX|?(`k6)!>OB#>XQ%4>I-e#YH zLm!&|O6mPMFt{KyWM*|0w-Gau`}Kfoh45KnioB4HH-^lAVdL9h*WGX{uj zaLawy`v|~P-v_8u7g1_MZ7D^HC4}P~@^OS46~Ya5CSaAV>@#YQpN`Rd$t7y9(4FIi zVmOdJ)HWF1yaJKNAA*J2T%|kbdb0JUc?fXNTbiuknF-Zy)g4YQYinhkb+=b1qNKuH z3TY?+qQEX(Je*hQH5ND1d5^M_R(@{&c{K9-y$|TUrKi`TiPdMQNm(Q<{~pysY5z#2 zr9M0iI_{Ew^ao_E`Y4jlk06g#58z2J5#0ST()eQJYOEq-E%6^+^>&)GFV0uLX&j z>HGy3tFYrNOoXLR;fE-U%6diz5PMQg|oR9dK9OaSz7}hYBfqcExjjIe>{2V(| zM!m@7weU$FwZud2LH(~m{rH|%m7%3?uxIbwVBpPS{6iE%{^7^Q0=Orj?K<0|I31`w zhffno4>x|}qxQfX%tvsz?Gb2J@mF|<&Bu#SajLq+-U#V;($5WZ4?g$eBeo83?)xWm zmXHhUeF7D$6*8<$2-_UtX7v<*4ZLO6uClTB|1hh22HE2)`whvn6sddgTqDrmB113z z4p)Bl5#wj@nerbblh?v~E1ZK)(o31X&XcJWJEcsk=qF(ATv3&2rGCnkWmJ?6GOfH( zGW{do75^KTi8B2Yasx7bJ!Sf5fz-=?!QCqHI$oyCb3K{<70>0rRX`!r|3RYocU;EH z^dHEBObP7%FD`6LoqG?oyHT&V|KMJqLwsT{f%S^&abX)~P`*UUT&%nQ1d3Q@t!{8m z=50hdDS26AV9qKKF#j`eVg9xTIwuoez?>N>V7^Ho ze`pG0MT?GR<;u;3khfV?jYku$_;}ILLzBZ;Gip{1=w1A4hKE&gFVVPF1F+ zu0S%SB=QeDT4Oht#xY_mL!YU?Pr8@(-y0P|uiC@GSpEti~!a!Y9;e+7^ zMB4-MpM32@P)kEImd~a@F+{=D{L_~6QS0(AO+29pWII_I#fGeX)K(*9X4YvBf9=B~ zN80Vw?J=Ga?ClZzFq!@_?mLbVRYdBlud`lz$l8a;NT5tTy<(h9t$ip!`fq*U7xrA% zKCtEi_YvQYHbxr8!cEcYf(Km5>VgNp9fFgOPj>?g9{3m*M^*>F<*Y1tv~h=3tdrkV z$$E#WMVtKf4m`JL@KdIVaW8CHQ3BGPk0{mnE{zmuXB=QgO`CChODz~- z+9trrqKBaIy$dXQtiW)pmsZO4EL@#Oy?Rcy?s2w&ufnyu?!m%19+jL=y6ypwNP7ci z-%uRI$j#^w>yMaa5)gqMCC-Qtg+VL0@Ie4%1s6UDi>&Ix2Yv)u7Czd-#R%vqlO(Qu z+)OXwNjO)vrtgA&J&ck-ymG)5Ex?$xGaI1g=7 zyQ{q6?mPy3g4{&Gzg~*r>T$z8_s4+exZ@V}l+w&>a$}*p%s>@^ov7QitWim+zmzV?!v9@tbOp!d4o{#O&5>d-G;Cr^?vSSw~tzwU~ z3!Snmo20)Nk=oq(l%tGe^Cz^S@|?vt@&~@(sR4;&+T6PE)xpmL72M-t(WmR771;K1 zc>Q%G!RK4EO?qh~xYtV?aCNa^y}FL{R?6#@A}^y%pn9?5h!jU(sqP({WF3hW1lK#B zr34~UZ*{5Tb~eERP~k=A7vgd9b)-6SMZj_L*gWB@a`ix`B-bG9WO5alfLw7177WlL zTwMp3$~w~9DA&cvp{Iavn(D^jBPG6h4!JT2U(Nuoj$D~NZXGF$tUAIC?iKg<9zr4N z2p2J6`QFdg=GEvHjIn~R3Ri(bwsl~~D{TNaF&?k4v;q?_Gdb`gbI9sG_fyl30OC|> zSD;g)Jpel??E({^9brGEqlWC^xfl9?ANj;Yi63evZG-FoRqqMs>0gYlqrMw~IRjnl z_rU*+dUThvXS-qe$^?TMdsWbkoe`1J^7)5aAaLp#w$_P;?V&(P=hk8P)2=|LMtcBuQrZQ^ z*Jbv3wa#0D-g@i2Tj8Z+eCbAm$cKz<7QiVV_wCg0<#{2bsy-d-GBnW3+sbtas{ON1t~J`Sb~5mzenq^Y#5~zmVF#>XV=12 zyssz4)~Gt(G4(nae|?^H82s%O?VYG2CEstuxr}Hy`me|KKgUKa$@gC8TDt*N_v>x= zy7H~}SrzE?EcphLM>?VX)cI)dLOp6HG!_!@8&>#O5g+gIbG5XUongqiGyI4fYjQZD z$8f)dyL@Q^sF{GmV$*EzZL4~VwMgic_tl5ZUrEEsIsAar;W;Qg-x8N3)`7&M*7f39 zXwvfE;W1%3h!9!>)@7zc2K>{VWyq_pwsC%@BR>*RYihGb|B902C!|rwcYz;?p2~-^ z!7bjiimL^?8rO1wjj|m}|AX>!R_ovJ5IC!q`PH*pnMxOwr1Y)^2VLG{5nqd99RXyE zOcw#~yMcG~e^DR?@#xOk;BVN5A~fF2O#BW6v;wDg*~@>Z+M!OF6{jl0*it9zc@OE& z&QHWf{|UScv1LI0=8dzMB7*=d+dnGLJO3iAC1(5Iva4@ZiDM#y^aKP-?z)zk;g>gf zwxV`F%Qq+j{7=_C-m?*GS8!K?li3IOpKfU^n5M!AuK&9_~06g1JYd)Blw=epmeq8$N`|-=*Q+gZSt_AR2cy z3f_TuEk}9fcQv#niW}yWzFb`sJjR>b$V;c|G}n~ zwqA%k^eBEa>);1;nNC5km#EEc?m8gDulmWlrC%nCGVk;03au2m9ZSkWfsUp=Q(xS2Y|hN84M=pW6j#+0~VS5yS%_|A9U{VKf;c)dYOwK{~%?u_eY*q>D85YoSi#buvTJ$ z^DC?sL2k3KwUXo-JoMU-b&U^^=F$bAM}GAa>aqdP_?Er25qCK)x&<8vyCQK#ncHxG z5M=}!BRNar2l7;@2zJv-F_rILh?nSJ-Pmw*5gvJP$Hll)1>nQFPvDkoSFqkIVA=!- z^g^}i;w!aVbiDeE;w1obHxm+sDI1W{&O4y?Ol;DNm*Q2Kw0Vp7a7r#mid!E9>F$ezK0zDx3lx4YNnhtAz|_SwB>_MLgwvX#rv z$S+;7^7M(7jSLMB9L)Q*Z_5vJP+E(B{M)kb0{(yJIrqJI<#o5d^qo&Exb4vCZ@6pM zgOA?zmm8mbRsYT#?vCC6v3o8m9y)%<%YXl-V~c+Cw%_b3pSb?=8{huHZMpmA-*nYG z-;-YRu17C<@w=CNHu1n0-gnUh&t4gR-^Z-ie&L=Azxeez&2M}7qfdYC;SF!!@*l>N zZ~T_ibKzr`tdD&6SL?p>-7o&+p(nQ zMeNq=Tb-{JmM(t%@Ebn<#0?L<=)ux~{g0Qv(~MJM@UIyiEsciDK`Z&2l((6h_TvUk z`&(So?!~`1hBfWC_=ow5b`bgeTVdef2@7Z3H)`5XQ2yH(K!1mFow#2G9H%#F+FxRt z_N8f>_6%TdN12s)|04|Q(<87&$h#D?-6x0@woZ&IW(420YdwwAbSKXTWNXgWK%Ilwypz$Au#8nKtW(g=>RA@guEi&_5&WLn?E;_9&J5PmmH>0~f=f>r$X8 z;z?C;KB&A5|5WD~z?PKUad!J7QWkXDQOWbrUtdQrht2XuFkX)z2gfm0ewrH2d5}xo+1s z0_oZ+Qd)Cm2>XNrDu0hW-GF?`uV1@dIw{fn_Tp|JS#>EghCn*Own}ZRdxNMm4b3(w zeh}!!+olhr_*GLcPE(ru5gkUH zhRUR*S=3rFy3U^{iQs5J>v%K3*7#)l7-(J<;V%@T2Ot?`8TWyFwi#LRyVaYgj$%6q zWN}Jk7z7vaL>YVrC{}C-{Y4Bs>$DpKoN(Y#`O30UlpJ`dFRB+dz+c$v1C8geo>x$9 zpHmI(X8>(~6>YFqH3|p2^LEH*JJ>l4$tkUx=!}s5iR2WuO{i$^|7}Ie-c79R5USej zS2gkVMWAp{EHV8aw*7v{p0=6N?yp1r2Y_(P^FeqW(79;fp*qNXJF_3o;fjA{>^s#@Pm;vnXajLMo0 zOGSC~=e;7%g4aW+cU7_ZxQU16n~w2UP-)hG!LG$d-2=Yp^HT-bm6QorPI(um92Z+T8>LN^~)=Z_C zvZ%P7A3)WuKT&NDCvzTngd{I_bjSJTe|T75ql8HVVTRXqqq z74_{AC!Mp_fr>G!RiUaWpbGgDI=`yT(n7=9gFsptHl80+_7cjCo(RdH@Qd2_fiR#c zoV!ewO5f}7XNnmx8L*W$%tc6OL4ELAp=<@<()xgY?nL%qj6#n8ngh8S2ycWD z+dIL}{}g}&HqUp5tLjP1qkJnL<@ZozzMlyCAvD9vAaBD{6XIK;OlfJkw5*)V<<_K} zi-(5th17%pc4T4X50_sR1IZ;3}qW>@B8-Mg|AFLS5VU=Tqx@hx+n^gT1Us zLb2NtF2ez4x-(5c&Kly>kg+572HGl!tmkL!QR8EA!O{yr$#_nYA-}F z49FrN_ZQrufg{2VneTIlL@W?RpF231?<1SVuF#7@MBQ5`02Qb?i0Je{KcdS+j9N21 z?V%h#d?=qf)LZC1m>))yRBFltU+<7dL|<=lIMq8c>>fnDeZ7N&hao1RNQ#3DQrDj^ z4i5||%B141&}W5;fua8VO{5}!{YdX1i=y&IRR|6pvbG#1-T98i$x_Ug|}-vmK7+_-c%vK7n%wUPf1hsf|~)ZVR!(lAEb%)Iuz+0 zgw*>Fr}8%qV5I|~!Q~W zpz6h5il0$d?^_3Ayy6CR7ttJtc|F1mNP7J2DJg0_88{4;Au7il*0V$UXVt8);5+ z%b*4Qsf&k(mv?tv+Iy2oxQ6dV#MVo`*mAwa>qNY4xWhC%?!iNYFh-!OZJl~uOYH&{ z&--Hs_^8-DQKtOCL&Jx=Lg!8nB~8$ex_gJwwP@R13^(M|H!oeGkA>Eywu7`quv&gq zPI0js7f7nRr;seAuQvhf`P9wiJug()IRXDY3{V92hPJ20h>0qcK%aF2YD> zrIAO5s_6aNg*j*_27nufSRJZO?S;W*51<{T;&g>pV{nCCMfTziHyuJZB%ecpYDv*h z>f#Nssn7kMIhVy_UHRY2J`4V7i_pG-#0Rx7e)hP7Douw z%AVirHQ@e%zWu^L)dERT5WMGKzyjU7VZa?JqI+CFk{>~3=w7`rF?+=t4v(jFBbC7) zCpq2*M$z@KZTXv^*5d|U^pFW0?<1b=g~I`oFCH2kfcB7Qe@Gd@_)-`=%oZ>D(n4Q^ z8swpM+0-6%A~v3={vH?hSX>q;)xgjVa6cfFmeOT`?f@D0mqS;o-T;lPG?)kpm2~r0K1_uXy z2lfp?n2Iw1p=DrGeM7xCi(yClpzmM+WH`SM#-i#_;C;nusWsVMp{pqAaWp{!p27S7 zLjZccXWH58d=%{KN9z@>oyHVMvc&kN`HE;0$y^%bI} zLwg2UCMU|KUD`X;OGSY9UE6t!`(YgVF~WGxC=Cbi*vQE?J z+bt-U@|9Li6;F@>p|LA;bgE^^lCmjqAN}zQ?$|!`_bf+?{VC8^873;Osmx$7fcH`* zeS?L`+kO|r#zoJocCYcP5(rrCbGA_$|DphwoU(8osVzTc0TGobulQ(i*3s#^LQ79s z2;S8}*vnjT_^_u;n5~?$gj7?JNkA6jJImWT(}3kc{gl}@9sK9;E-$G%X_Jh-eKKCd z`UTC>_})*Ny0DjM+otnFa()a?@5S#YaZ}pzrOTIb1Ev;6=nrAh+pxcBRMS3<`%`&5 zZyPRP+$a*_|6}i6z^baY|L-y9T5L85D2jJc?#TU)cSHe&1g|JwP(VP%5Dc~{W+h@) zCo4@dEln*gEi+5=l2)3ergX|OE3=c9nU!74ZkDJ1V~jcX0y8`3_df6Q{-5{%{H^s} z>oewxK2f0g)?gf4lJ*nOwRZZ zpKlO(Yj(77>xS@aZ~{Ffjn8jDEiTh=8G=x6;4@G7r(Jwp3Gj(K7>{eJ2X4}HgX~Y+ z0k|B-L9pp+8hOka#oz6Ok^$yniS$DavbhW`}t}AWs(A7@4CfRfBHn`tD z7uD!8TG$|_3)SH^Un=n_U-JCbmpl^#NM{F*546E=!L;oiLOL;&v}^Yw^n9c{Z9mri zoV3B7uyfKK`bCh%h$c%z3~6*M#UGkP_I=5uy?T@S^dr3?qbIh_Sk_WhFQ`Se!5vwo z|7Lw<2*vpv)g2zpraHf$O{qCK(K$9)Ho9iC4K|N1!cq>go@V_wYv35N_hlW$I+OK& z){U$OSWk_imhsN}eN1N&oJU70F>f@Mm5b^QRlI!%rs6LMtPRS?lKvkzVS&pP~09n%KGBqS3?f`K#- zZEoO+b7K+JGI`TXRY=QW4W_k*l`tP^FGp$3zxdP&f1AB0o~u5vos0euDGrB#ot*C+ zr*+fxJ5w;c4D<2fTyH^j3CH|I{!Ec@g!4rq`9Ul+a?CzRanKu1vgcqiTDaj~Ximaf z^qqwSxF`7IuNdWSq$H$|!H%?+DGR;=18FDvx#1jY-=HVJK~Bqoi%cIejpW~`Z3RCe zxxpCl5|j^TBfve+gEma~vMcW0IDC|D9hROZsq}p4$TUV%XQpYIx(KSv0;DAL^c7U= zrE&wtA);fnSJE-chpz1To;)X$@Tu_-L3{MGrcfp~gVGA{SGonJg(A7(AA>VEUw=-! z32;I-j9JQQ)lk568`Er<%$^UiXAP8c+D=Zp1*Qo)4(~JF4i)&FaVt2Fv{xq`EAD<($t4$qnjZHSQ5!AIuF%58)A@DBW@Rc7qonSh`@%l9+Zt2-6Kr zFF~mEM9)!3N!UNSOKO)AjItN@1HS)@bR)++2qQS{0j5JRPEvtuk>cPeJiwk$bJ}qv zO8Y0Ly$dTPo(Av<(@7*s`-$ljA}qnnWrLiL{XTNd{I;Rf~H$H!6Wb}@n} za1xQ1$Ya`ENYqk{V~Q#w@(~l5@|oI+iA>9xI*0CRMX!aT}AWSszi$q-xer)G?`=^%r+AshSNCcQUD(rHQ+lUf~il#63*! zFbx*>GU4BOvGgo)KT{;r4Pq%%9@7x943G31t^>duD(u@(AF=O*5%b^a{1NK+r~w>2~4DI5ETHJ+v>QM1byWmcS0mZ>xQEv7ND{ClgB&t934DG}|C74!7cJLXhH@r1*cSthy>^|E_ zh7qijS*uu&1#iG;o4Rkpyw7!~vUah)#@fjG4(ms(=TIr;CTqVk!%kzJhqF#%tz@0c zx{!4->%*+;S+}8j!{kYw{k-AfN$vdNz%#tHi-2z7o$;;g=!j7+{xCISsHwKS;iib` zXjvLD8-1RNn1{L}q7z2A6!8%r)3+ub>6QQ)k&CU=agh(=b|G34U`ymVmq7S9(y#@> zIn+_}zlr<^M$MN|AK`mW?V>v2TRDYMDX0gc95!$8ji$2N#5ipJ;2(1iH8$oe+lcui zVyMrQu-?Ra3u+wPi=J_?hIJ2G1iTy5!BxPgG2KvqkBLOJ#gYcb#-S#~Cc4H!cI6d6R75|vcApw1*?%r_BO2Htm&-z ztPa-uQ3Y&F?1X*e*~A5Q0WT&-V*I?M=`N$@|DHrG>6J_xfhr&qb;SI8P`%+<*4LB2 z#5#EQARk}WSk`RTLe@K2H?i(zeT(&5R*#;PH1A#80}`Sp>AzpXs_umZQ#D%h3?+q z*Y7S=v;TA#>QQ&Ow}DLq_j=f1=Rj)P_fT!{^}vH@fwVVJ+ogSg8j_ZR_n^JgKJzf( zD31^0BB>@+2Lnc@ed~cgHl9YUSD8km$DB0k19zgu8y-x%f~l&nmZwt>yfeKY?$N{P zJ6j6amj11WbM%md>f4T)@6OtdH8YGXk-VM7I*xTRD#aY==FEFOdS}Zq^QR9Ytzo?b zwJG&cjI(?Y=~JvbSr4-wXFZGBK%kDeFa4j~kAlPQIa& z>CY`Mpm9h$KLH;Mp|gy}4R82$NN2RP%l7j#ARs%=wH*x0o^7;)X{i3NE;|-ecaEDI zC}76;kMLgq@$vWL=aXl~uSDI$mILG0<96w=w?l03N+Gr(oGiqafgcOwux~_-n(ktQ zheu({LuwIei`?%bo!jxbt)pykEcYGM_lh1w&lb5JG0yGy+<~}#EO#;5XXR4fcXR)V zmP5I3qfQ&y4=pNHS^k^t9-~{v+3;DMwx~TuPv>n1E7c@E*A|bTzJ^iFRjp>{9&Ki! zn#|61!s=w znno~9)^sP+98H^SJcniex%(bT}yI#|{EYo_j+d|FV< z6ixk^ay2=arfXWuG+)y{nU-t%jcKzcKM#ues-}@l?`yi9=^IV!n9LAWvz<&hH6pj} zhfJ}W{$LuU$=8!g$k#N0sY+8G(_NaXnI6^j2-9{=yP1w?dY|dEreB$U(&Xz!<#~jv znx!)ZXu651r>0d*Lp3!pm1z2!X|5)pmK1Y|revlkG)-dKt7#t7+nQD}o!7L3>32_56}4T$9m?%1hPMjcJUgRHkxG6-)~>ZD3lV=_95sn(W>bvq4i5(@9NJnZDDs zg2_f-R^pj+f~kw9Hmxa2yrzLnnVO22CTW_-5S;u^&61}=QWM)I!k20?@Z_19_l(! z4gy;;MLFlTw(AfiFQzl%>8`m*L7F_eO_76Pj3T#Nx~0fW$k%BSc_YPPtheIp=`@)wAB7vz%H2w;9jKpnnD9#m1E(sro=$}9s|D9G$8PZ zoCxLgIyT143Va9Yyrxlsr;sjcx-0OEoCJP-mFIG#0$9mJSITIk5cXM=W0b&grgLup z2p(tP50dqxeCOQigICK^NY%88sZ`SwOjU}+^T8?TdAp`P!CCmF!D6Q6Feq-tydF+yg%SRS79r`u&j3R1ZT!P8#&RGyQ9D85y!#E`ueUwiG6Xd}1tv2Buo5 z2)Ss~gIg+jE`+*}-;9SK$RbzsVd$gtrQ~l7eiUYFs?I-YtbqyaxwJ!LM1`>yrZLfx zUM$zbJf;Sq($~R4rbYH`A-?81c!-Ja$QEPT)6F~|gYC)_ZU`M|J_ctsjb!o|0Qhea zObN}yv?n!956yxN@FJ6{%LX{4(y#X4Y zv>bcELGwAdpz^^F-51N}0l)UAnD$@0A2YXsk0Njn%Yto?q^VWd2~5k<)WSSrZik6F zU%RkV@&&j_Q)pO<+yNc9gr(pz=|IR1SjcH=Z+F0Ere*MUm~`0zv4g1eW$;m03zuE6 zM0vu9NmVYpVYQ~akzOP>{CCjh7p&PHNaTF9M}aPT;0C5exJTWQ#%k&j9_z9frZAlm zgTu4nC8*SCOTv>~UV_^+J%#iN+^fjGKYW18et1}?9l?D2VY8;=;e#>lMW#A96Mjm* z3Wu3$?J{DuJOFPosl7b_r?e;4>;Sk9rhQlhR5Sb=4^thaN94J@2GN<6M(0Y2%OOZr zg#9`T|9X3#X(=p-sB$?BzbN8!>~-j#MfsM&J9x&uj-Qx`s9ol}ybe>Cs88I1bPtni zr6aIX6V>G?JjtY5sS!5oG-{4MvMD=`+UKPiGb@thjPr7^n^-PQK*gl8Us0faP7s?MHHHSTs_PCscy-bUM_UJ=s zF;u0|kv;{UOlprlf)0vcapXalkDxEpGT0UQjmy7aEYngr9Qmuu$FPp+fN>l>KZX~W z)LDEQHYra&ny29o)pv&`kHEbek&nAkG>S6m-IihC@(pig!M`hs*DdSWL_UfoK+hRT>9L%?9BzzA4uqey+1+27axa~{WWYJjL1=!29%)TaSn(bRS&a~X#7*&Jx zrSi1D8key2yT!se>l3=-bgVfr-wlJCORSG^A7VJIG~P3dzw`E*If;l?FM{ zi*4V-YKtDUU4lIpt+D+G?^?9k_A{Jes)I4nYiz&5cTBYyD{-tcErrFUy2`S!ZT5hk4e#<7sCz|d@GR3z{i(qwh7TARQNQzkpFET|j)xuj$ zeVEj7w~3+36ZiH%? zN7Me;6J{$>r|ER;Pr_T=%e2V;M{JtSTRfuE=tz5u&6?;)dkc@zDyCaphO4(|$E3~& zZxPExG+e`{VVY&kt$jhQVF&83yCMpR53}@ub4JKI5gRk zPM8D4Q6|+R2a4ksost8^d5i9}r-}3;z<;&SI_XY(hHz-|P0E77VymX4q!c+=Bu*yJ zMGzc9X{k)LNT)FEJDoB(hnX61L^&mgiPR~SR?BD3a8by#6snV|T!xFcblSa1K4OIEI+Z+^ z!sAI#+eZnS3zMiJ>3RDY5v%F_q+Ry0qDB#4DaVV&OpEOFJ;QiWuW5L4iX1OCDuOA= zSukD3Pi(I)N?xJqifD+w*s-&qCz)(R^&#S_?3D=58G7H)1peZX`;lU8n@}9 z-l96UaMc6wRwsT@1f6^R z=JpRUuYx@xrdJj$5vQ1zLUFGumnGsCrds>Wy`I2%(}F9N=Oev5-It0UitNw#YU}=h z$kk~t_v(x^(;|QOda*;(TfI``L*lTeQ&`?ZB6FsSd7kMBCb|QpwCxs!xj!UgZX(Y` z@H2X@5PdBQb6+8Hnd-paJIsBhSYJh+%fP>Ptoy^_Jkuh3eD9ycV7ISsVhLVMXWabz z+>RyqGaYC#vCnGE7shnX&A}9>J?r{V%tWR-`x|{`VwAp2%kAg;+>Dg2(|+hP4`~%s zEx7j0!j{;h(|r0;lvA3bnZDCBpf9y<%bTg5b@nlw7SFWEUe1)M(tz$f9us4k4j43Q zJSO()w7Gpx$;ZXM*&GG#>AP627jxzi)xwIt3*0w|vrKjH1bRLpd}@^EZmj2%B2AI~ zJuL4@F;3IZOf$8oXTMXJHfOHNH@F{u%O}n-)xsF24!5YZsr?>s-zZLNx((AdiN<*< zZAHJ8?wdsFtwgo371N#;YncuhyZWWbr^Vx%4)CtL1az6-__)Ta2_{ zlTXTO`MhY*l$?T}(ZxYcV^apWY!k0*s!n;peVZ72JC(i^?n~L_zFq8PIwLluWWfvK zFjF0zPI<-s1u<6C5|&K0=kmy7H2KG*S=f$EubizW_wXYSoElUkLYXBOIqx%8zJ`#??aH;=0?hW{7cqg54e@z5g^u7Bbk!g|9;&n08BK*6T*o;KwUFsjv z;!P2Bmov(s7RN=lMdMq%D`r}BQ;YXRy+wDm_(1HnXibX`#V<%I=H3<`ig5(+ih1`?n=OazR2Pr0#9bD7dR!2%Sk%Ge8}Wuk z{vO|n_brO__+Av=OEH&1ZfZ}DA4TkaM9ZKIWBwvGYMPar?r~XMK%(-NrH=CWO?0{6 zNfSJ-h*1_z@%UX#wCE-ekP9uE>mlWf>bi;Fd`*mSkV9!o+g+*gMedS?`N<6#CA1tc&43I&1=u`;{JcH#3BvqGs&oEhT z(es|M@>Po(J(J~Wi@x$qk*W2RZyBsfvw3C6^%jMDWlQ^mlvZosnDzwZ%I=!zI-M)W zGS$HwX|qJG+|0Ddell&C*Jyc0rP)7AE0m+9$8w5N2j8XLD#ysBOms!a^~#egm=3tp zbtO-(Wx|F_uX4$geh)eO{3NfjGSi}&UgKoBMR#~jkV`Cj*lVKPWzn-<1@Z?ZD*aOb zBVNU_e1$XS7hcn3y+xvBncQVjmzFomQx^4TIYXK&o%u$#tdyxpDrR-dYWV__x?7tg z_cKw?da~sl`IaJXmm0~hN8t6HuA4Q|^I?jz$WGVW8rezHl-_qijSSU9_Y*ZTQB!Jq z3g#=(ME49e@+PKQ`&;QVk?vFkpQZ0@StFlRo>-SGm@9WSk!`L#U{RR+E%F_UUTZl| zernO1EpL-uA5rzBdyNG$MAKy~Z-I=~MEkHnCTnud__*Z)nTkZ?;F`40kmgwQQ_DKJ z*&_E=cgWKgb!~O0w6AjJ>)GlanQGAut?rc$iwasTksB>?v|1+LLZb1dTgLsZR!GNc z6(v4neXB?0DvNftS}pfk^k%EIa`>Z^ZyEH>_@dQ%nZJf;5yayM{Y|pmq9E_hvYv@N z)4jLK#I;V(67TJDkVSWT?~*f_$nzQRm!!`+r{_D~ugdNg{px*4<}#6IQ0q736)P>T z^*gflW6pdFT7Mu@naFc%>(lZ)6JD7!{?+<(+3In%x9c*#Y5j#vwaC`yD_L%lf17XQ z3XA%-xhRh#(Y~+CnAqkgIc>c&%7QjmszSpS_xU$rrf$PLaYZGGH~ z1|&M}2Qt!pS{grCG~UPC@O#3U=J4?`vMsvLr@e6(64m8E#ulG0hR>5u&$oR7jC6~> z_X#p)TGX~}sIkhTo^8X8?~qiKqP8){Z5xT`Y<$2y$+%Y$pMS~5!1;%}Z)jP;6eq&?X-#kgY8>9+lihNrlm{LOQ! zao(bFFuBea$y8b=jo^E(-rYH^Y zEP7@b9?uZf!HBMlWrp!9Q!VVmv_XdV7L|5*@F_XSh}3jq@TIncjp5Hy+H$xs__wxM z#`>*Ja%*>k(d9X!rEqDmU%Mg3V@zt~%Q1E-;*l@Mc%MmK--jCKo5(iQ_`#wu_hE+l zJjEo>*IEuYd@Opi8TV`cj@TR}+ncdB#E{ zH4Y}X%QN;`)W6+W<2#Fnv>R^(ZF73&waYiMnd)%-ENfS2IIOhW+LaocExM=ORO7To zkF=X^_-uDZdAi*UqpwB#+f^A3i{5EhZEUpYe7jl3DU1HyZnj~*;Ed9t{Vhgciz3?J zYRt4~K>PW|dW-Vf*BOmSY80++f0t3RLq&r(_FD9PhXclGi`+XNH2y$RH4E-|#AvzKNogJ5FgjaQ z((#xPWzn4--!=MJ^i0Q-#xRSHcl_8Wu;}-WpBb|(3hVThaVOI3idXrl`z< zPCpo9UsAPRmr>s7N8>JwZtwK7vE8BvJN;^$w&>|j|2De3OtoH$qyC{z(%gzf{c~N$ z=bh~4X^V``?xx2p&a{Beo@P&r26S#^I*?S9DV^Jz9{Zf0_jm4W_O)nZXJ2!gMGc+( z%zBGXcMddnAklGOmm#}!HxFBB-Md7azgU#jCDshu?<`?PmjrXTMN7LRn^j0E%APKL z%!N#JZTzCk0CO+XGDyk%u}hj6`>Kj^Aj9-cHw!Il=R3$;Y*B=7mbuHKRNrj#7bGg- zK*j{$5$3`J&M0$z^UUoQJ>WaeJZ;f4zWJs{gVXb{Z-E(&q@sM`TVkeKXtn z?pkiHvS>utO7pNqj;>Yamq;qg>aMfRD^}W(uD6=_g$>{bEbJ{_oWiTvrMz$}D7BZr_*H&~24DP16&> zME_6(jht4`q`tjdWxm0*5WdOUf}R(cmfC}FINoiw>GwL-bE$nG(xYZB({lSANNda$ zn${t$HQ#4ihJUp_-EEy2bVTjn$2Xks_PFU_S_W5c_!jAXO&y2)goKZh;=g4OgS6gE zXHuUnHkjj?=vo!#zQHV0#NRnSVcx81^^ixpJz=hAqAPP2JYim7dJX7^Jz+*PQV9(} zN9;*6Q4<}pO=cZ?*5b1ji{&Qs0Zofb7t5#2p6sb&K5b56QZb)4YnsK}Y%XmUbBkHe zbkI({V2ineX(_m6SGjC4w=3dL<?Vo-^B6G!mXSeVLZSo!Q}j+s#NO)z&YV*~-(tDtMUJ z3+8-HPi7a&7fkwfA{7(A>oWUTlDUFPbY9K^CUHXr8*ODQ%B=RuSA(G|X#{c_V(0;w*2ES*-}3D%#R*kNG}-o>q0) zYo1mFpJ2?rX3)x}d@q@iioj!XO~6a$$E%yCeXa;fCoh&SnfzihUV&bVqP(G*EU7jXXYz{9hkPy?76NfZNHhS2tLNN{btZ(O=+*1k&3{r__vr> z&E5PNNR@ZM+^-0_7W>B?FugZ4%nT=FMB0(hixM6~V>gcjFJ4w`uyl_yPCB<{`cpRwcY{(hpzZQGtMx_6e_> zZ>ltiDS5Kx5%W0SOF56&QS+1{=v%T_9yNc_l#SGAma2Ox?n`f&GxVKRe#vh!ZY4%YB<(T$QQ>gnTPJ7dI(|1qvFzrqAy=G}|nIG%4#hCV%c}U&OaK2;aoBH17 z$&v@$kC}q+L)8AgZMrGK)}5F5wmFXPE>zk(W|1QJqGVp;JLcnjMOSIZ&8HQCPw4~h z$IX*`omOe@nx80w)Y5n3-!-4$E1pU_VQy6fGcb+jy1=&X1-GmCTEpkI5y_f<;& z!iOSMpxuDkoO&m!gnR$%?WQ{58&jCegvYQBF0h3oIBRuvJte$kr8cj>gd=D-;AFGZ zudlH*-`}6uv$;0ahgw6m$<^vCvH6}FL&>MbP--zBR0Dj`VnPtxV_8#BC1j%-@MnwQ z=dT1zW>2L}H8J?9E)%A6Y9;H~p{-g;-Mg;drkc!UpW9I-+{yJ(d+oH4Pt&%c`+&04 zV=e=8QT?0ex}JSC$KTkj#MRf?RuL%Ggze3In%iGSy9>O2oz&*JD2}1y9B2QJS!v%T ze2wj6!1ruX`*p2_JPr0Vwdat0YMHxP|KPkWhmnO;f*+~@VK{k>fEczXvAqXxrw^ke zqDoZluWF+9ZZ!MkvzD@!v);_A_G=z*FJVa;w^KB^t|;I@PVY@r?^ z;ceW;_p$$E!M0`3%WS8oZPl1BL6t}r392mWnfUwIBPmW8s^ESoA(Aa*H=!S@3*>O> zcuSo%B#Vk5KyA~$7#!1SQGHvbs=lrEx4DJNYVL1vo0!+cF`x)NO-^;;R2$dO72m?8 z?+&W2iSu{<*DKM5W73M9)kUg9C*h_4o{ldGHT&FsF3t4bZA6N z`Y@hfToY33EaPo;mMObxNwrOORU$szX?Z#=D%y0m&qBR^{6EK3p6cv&MpF^gai7gG zudP2_B{3J5rN$PDY;gZnBY*%kR?u}*o!zD$F&^Svq|T$Dw$&NkWOt4U%A&@Erfp|! zn_HSkXc{-1W5QZ4k$QGFaRHR8K0` z=}9&DPotc=hfzmXjTKw?Sp5I}yqnE?@gl40;p&X0{@@%j$nLyy(K+rMF{qsdxAuS2 z8=L2H-h(yofvWW8mcQ$hE_&2DfOU{K69gUcV_ctiEepT3HxPyHSvyIePNQ!38C$YbfXrT_OnKVw<8 z|4>$wkL!OZ@mf#nY1mJ=o@ykgD~NN{rETXp)|9HQIM@1^e5G^tnLqnG&wc9oHa(6t z`CJ?AYKyw+HTgS79*R0TXi-c!D~O?DZA>E>bxLz-s`GQlyr?2(0sf3=Smep zjm%frlT<>h(UeQ2Dh)=91odg_|Jk^w>Z$HV)P1!YyVQ15su~rYS8z41Hu*d4>Yl%O zs%in{N!!kT-rUl>lqMhNby-Dwh}(hm|BlapH9j|uxBvS_+Mn_0{Le?xrmNNeKW>g0d@QC+2y|MjmU|KFGRfA+PK zTHASV@W1!S{-52>O=pDjo~P+txZ3jn=J}!`;|!#Dl$&3>@mm+`YOb~op!a5#PxDk~ zuIAssG~b?zx$rMsoVU7}s_Uk@Pat*1RHLQRYg5(tIqJ?t-P@?Y399d_)%ML?imF4? z-+*Y=KdOI75vhu^yVJpq)$p^O!r4LkfqwUXeh9n=h<1-PyRk9bR&PJ{3 zb}Q;G-vy}AILA>h_Ur`@b-fd}m*7*SyldsSSue8+NuF-3-mD#2{aM3U<4`mG z2B4lWvrw~e&TG(@}l>X?r9Tu{|5Nll=36-Z9MudZW2a`yb4^3;oHS&h`@c zAn$WQ{#p1Nz|?wfa60b^{6z+`l(VIrJXs!#FhO)EW7Yak~Rn@tn$=aR!8a z0o%D&t9X9p?QB`avn-#HOU6~X_=^X}RTz7dE6&58B} z(A)10o@LDeG`kv=NXLlg*jmN2N?$?$EV#n`#Kd0h>+gY@1s;OWM7DSvl&d3Z7Ure- z+#Eb>wS#A^cJQp#{+xP>=cqmfG>cZPY>{sS2Z;~zhIxf?Y8-B7K_u!oA`x|7a9`9y z=?yvgJA>1)tcKtLMtS}b)akzGgR?R9bCG4N&i4+v414oChGetPWjLB28#2x~lb;qM zL|yclkRpzM8Cp)PLQA)ab5WxvuEyCedQM!9+cf*pWk{R2DrA6>H}NsleALTOG%-b9 zhU$qsgKsj{;&z;lpOe1^{eMP_zwpMngmT%Qi}e}iRm){JVCQo&*S*>1kFo5PtXjw z3o%+2EYxjll{uvyRy4F2N& z0(z5)dCcbL~+erB#0&l=KzJ}1lu?4L(n#~Cjd3P|>@EnJ>EQ?TZwS7? zJ~X;UhSLa^183x?1vtx;u?I)C5#mC@@bGa$78am-7M6yeky%M);m3?lg;g%pVmWYy zd)+t@QMe0zk_ulz%_#iR{sE@mVwf1SA=rcU3|elE@WE}ohDw?xdYo~8;mU|{#!A#K zY!8z3)M6rTXF;N*7Vaylg+1g4d9y^Kq_e)Sq)|6f(yWe&^6|nX{~$?EH>OLz?nr9k zZ1gXbxsv7^&XqI|aXwl;7bP6IgzY74FOl@*U=X)PIi}Worn65vmqj%>VJ33qM2>vS zSXfl$(n~B$-4xYJ+*gG2KVUC9VP*r>#38B2Iyk~S)P`V(q_b(Er1uMh*p5%O;l9^P znh(2P(j3_Jl4ixOmozJOJ^DQFN%|Eky-!Hn^=xVMq*3de=z1=tUee6jKXCi6;=QYv z^seA~NwWp7mo&ffW^RY|T<&^F&pMJ%b<6G80s~{Vv(H}6+rT~zY;RzDgQVvl8`*vl zk6nGtaY<)uJ?~4Sq*=Nt_05)zlIE*!lr&>^qof(T8zsHRS1;+^Oww?#Q(Q`;q__PV zCB3nBR?_UwXC=+$d{)w2&W)1ZfTLDTk!K~%wR~36{K{v!4m3&}ZF^SIlb5wXa|E1~ z^xP#yOZUFOaV~J23zq-eZ7)cA{_-Y1zCU0cJcG#p8Sg9Xe}(-`+`B9=4XTN0P)$sO zp3L+xKFG_6CI6t-KAh^qsa@E=3tPH4E$APF{&%zg*4B}n8p)}N?4QV%L~WrbIQydi z=~z0xZ9E$#y~&nt&`j0o2F(ebjj5lDbk5r->20}mgP!foMN30)zCp*4a<%m-!Ca2G z63jI{uAFl@IG2O%4z@cCdiJwX(mQGk(cU_0A^R*e=(*3u9CIP}4e}{!y9#}5@#{I- zX7=37mdyq|3rcl%@m$EGcfF+dV)l{#j}IQNw%l+J=I== z&R?7te=yw>(%E{og;#hzzz`)J!!ocEML&!1l4m_K0aJ?nMWpmX!ALFJw`sLtiwx6c}M z7MFAHB@Oqwg6&W!O_MxLldeRjNqJ3^JWcas*SFhxm^A0Nhe`8)`=ABqL}iPQw$Rh4 zUD(ovEkW!P#Fij!p{G(K*%HZ?MD|H!OQN>W)2V$;I)g~lz0*;j@y{u1 z*Q8#Qj#|`qG5UMN)N|f?y-m-hF2yr$G2Y=UEIpAV#FDNjlKRpeV{#%MsU-hIIo;Pk zd6h{c_9~O^57(R2b2giFr@fT#j#im87w{^R?kex*EA@7h=BM9l(!F$pNu%gq&fCa& zk8|F=?B9U(Da7ZxDZ*Z^n?UW_V=2e61O5gMJ}=^f^S9aY*N`GiI}}1JY6<>kkR5+Z zt~Y8q^hce^o(@RI?KzNzdVxK^W6vMh^B4BH0%tK5#22Wh_y*N3E}?peUr<|#f1{QN zDr=f(YqP^$f=XO0sKh0LN~{bODk|Ia)b}HvhmsI~u`7)*sm!H`se!?5%hx;ynMoXc*f?6Vln}kxf zPm?w`YysHX2oWxINE! z26eviJnBMYC+cGMT*49RIl>B#u*#r)Tx$rd;d+DiZlkdm{Wlx?QMVcgQMVf{+@c{( zIC@6o41&jcL_;6p6A+ERD|jnfM&Xf)hIgPp+CPL433#lFAyBUOFUH@YN;1pXUI*1O zKA;XgeFN6R0qk`_g4B?sY)NLCIYE3M8t6hkMJ^Pf&Siq=82+itHn%rXCkU^II@>lk z-{?Bq1W_36?@B&_uAG;(nDtXv+PgseHn*CjK%DWZJZYVsJomGvxmC9g?osT<@mU{d zJ;3@YtKm+m{;YwlX{^Ppb*zuG9$@{H)o8)>VNGK#X02m=ob>?fr>uqt`?IF87PHo| zKF)f8^;1^Ell=F2e`UTAblUrpiN6Tey0c4?nckY((9Nf_$0IR*?Z_vUwU*VdBU$j{ zDe8RIwXD#k4%@uYmvn7c(tX{?$Ip+p7Y0(yl76iHN$00?>KJO;f2M6W^mIfXO zd^50JP`9A|L8F3h4*EyXwxIWeJ`4IKC_K1#@R;C5!A}GmAps%1LkdGGLgt4o3E39% za>z#^7ei!dyU^g!#L$e;;?NsIZwsvpT@$(~^o7s^p=Uxbghq6a>z>_xdiQ&~Ki~c3 z?x(xA49g6w3cDq2LD*ekkA}Sx_7VIm?CY>AVF}?q!_&ia!zYAShA#+T99|#3D*Wm2 zgW-!KmPKrccp>6Q#G4VPB0i1yBI5UmPLabRizDxdd^mD#m+-!PjYB-e)6K^dy*eYUX{E*`P<|H+}0j9P^;fDq$_^gD)8?t62D1I z$8Qlw;`d==zytE2C5*#w6!Y;L#Yy;$VgdN!FXQ<`F$CcCBM7e^p?KBk4maUCQ6xN4X zUt#@()vYc0^k$vRx|sC^))TB|JMxKQ9l|=1^;Xu^tUFoXWBr0vw5MFbto>QXv(90C zi1kI*Pg&hNkbgAmDAt=<>sfcPzRmg#tJ#tK+q1^9X0T3Voy)qO^*z=Woyb3)bpq?% ztUFl0V-4#}KDn%wtczHmV%-qvf#0L<3j7K6rNBQ>8`u&VMD{$^+910D zuz~exkSA_`%XZ)3*0`M!+zxer@FdhjY&pt$jCEf~fQi3q8%kxV?LOi|v?PR4{8ZLJ zGsgv>Qv^j*x;pZ0v;>-`Ec?%LvJGHcR0Zn!=#!{lM^gls7*Zqpv}O4`jx2w$y2n$w z!SR&0xo1TD?XLKnhw<;Be#iPVdu|Byz}ukI1j;oyfl^iEb4e8QLK4}3VpXkIlT7v# zq0|C@Bwxb3kEAa0z+Vhb{Re78D)}EuU4q-kQdgqRv#mirle!-Dd@AKtd!hF35?j0m zki8SD+Kbo$6fJcC?PJLRYNgq%3)ttG0Z(CS!+@=*jRSU|e#rKVtT2%3;60FH2C_!6 zX0c8fNYNau4-BNE&>@}bulAx>`ihnmc{QpkS6Ni)s#f!C&yx@D>DY8CMeW@?8B{B^ zUuSt+`G1pfUt4GW|2~516{-*XeYC+tXderPQ0cc0`FA&L?O;+>E2Ue9c=+KlWzRv` z5TAi^-w5{W8t{B*&Q)f-%KyA^9| z99t!hsVz`_@YjDN{(f^y)OP44ag1$)+5v6&1P+qKzut62?Tr6P=z@RIk+^h2?TX{D z#H~P7Km7ZTq$?+C0FK2Htr4g}I37z(i$M*6IMh%`K<$p>GX4!0dZ30wFVqO=gGzrN zl9;DIYBY|~`0fUzp~m7EEiwOK)Og53O~BDw;s~FEngqj8@z(}Xd%!5vo-i7<7hXRk z{=)1y)IKl)wJ-hxtHd%2P*b1?wLe}~S%tpNdYEXy3EvVUWD{2nhjye?Q0gza;I@IBC2kHo%<_(|9hP&~I zl%YzP4)>r|!o8?fa6f7_&bT1)I<^dT9z2M8D?EgH8>~c~507Bp1+W^oYgrfKZ}>`# zz7F*+yw*v~xdF8voKz3aYEvkLrPU!+6}qYnZDWDjrjD2sKo^j@n%uMGX^gpoWV# zQ3v7QM6kugJE)oBUDO-Idzd#167rbMtvTCwN=8)_~V-rUcp}i#`X~|sQZO0>Z|zcy!a-FXo1=wJW&tg9Mky3Db5Ow z?|6zfsIQB*s7FM5)JD+}^$pP(^`F8Q^-a+Y^)2C#dQ1eOzAb`L-w~mx@8Ueh5>AK+ z)c0_1VhQhy7}O6$9O@a7fcl9@LcJh*2mxQCO87?f!tHNSC449P;PypS?BTK>YG0fm z82h#yfcE~V*sEn4>Oh%+I#Lcs9VN3+bL9}!(J}{h49=G;ArHTWmM~V1LLDbZqZZ0M z)FO%BOT%P20kv38L|uln(PAHyMW_$TV$|ib6!jrF6?KIyLtQOzM14%oK;14YQTNK5 zP+yYOs4vS|sISP`sGW@(RDa_Z)F9(l)L`Rw)KH@qHPNU;O)~C4O*QUB%`omp9c0{t znq%CHdpZ;q_s+NNhyj(aBjfa4y%BZ=dl3BTaDXTq;I?wR;kG5S0A?>O4wt$?7vcS{k7YKmY~n+Qd< zi!fAo5rL5!#9q-3kJMiL?IoMsD`McB(ObsgXW|$f(H=JFuiooz&!RqN+l~5!?IP+% z+aA=XY?p8xZ-ZlM6pnJe!0>D5ALZZQe~|wK{|f)U0T}^>0W$(_4tOYFQ^4kc!vXfd z-GP?_Wl(TXbWqQrzCpJH)dj5&+8op^I3PGXcxLdU!Fz*$4Sqc&JTxveC3I%!?9hio z8$;g-JsH}&ds_E~?(cQ~w)=fy%fp@t`z*{Y+&g@IcuB;Jh`NX^5&I*4j<831NB%SN z*GS)};Ha3W9#J1fos0T5N=BcGz7*XlCLm@+%!HV-n8h*cV_t|k6(eHZVgqBNVtd3E z#mXj^xj_)_51xl#{lH zwyw&c_0@TMl8OJ(r^NlG6jwb9(H5_x9r2pk36}`Gp2gxZj>9D$mjqk};+16x`etK) z%RwHB%P?Gq<1zxTVIy%Fh1aiKTt?$E2A4cs#^N##m+`nvz$G8ARugfVgx9MATnce1 z!eufp#kiEhc;iHy~3z8gw~FbpE&Wy1!8EHbAe_^g2U?g;2Z< z5gCFjypk#&tT{{j4bkgiI(?W&pw|U@U98uo zdc9wSg;RYFiFM&rzeAc|*ZjKX_w@QhF*btyKGgh`USHJy7d2nfd`Yt*RXJ`_mE)$l zh2|E_CVV7SfBaal&+r<5nMAKY)9cUm+SgS5x|?46>vf=B2kUjHUO#B6e)o`Guhi>D z^m?^kuhHu-Ow|v+((AAF`deI6JA7-Z{&-RIMa`EqU()=e<{y#i`2A?Ae)_Yv|E%pl zYx`wwzpU+-wcXW4^rxlhepB^&nO;Ar*AMCS zO1*wWuUG5!8ogep*U!1A_S&Y`FW{Qm=>-?nPCGU4)Vy2sZe(hg-7czK_GtSaZQrBq zFX?h#(d+$seL$~Y)9XVz{~^tq4DNT zoqkNGAJgf_bow!!enz+Vr+WRFUVpCFU+DE$+W%|4{#LIq>h&eP{t^ADU4PX4v*w>Q zU)FqC^KY7e)BJDE|JLkjQ~jW&UVH0x8@+C;*X?bp-1eF~YVN4Hv*ym4eKq@P?xwk$ zW`AVd4G7fhV7(62>oC2JLjO$R7JLIPxwwoJUcp0gnIzicl88$xE|YPo51x$a1>%$7 zBJpGJc-$_*Wri3Yk}9TzWQyq_H{gG4DkytX4nj|5tkRjPD?7sE%+R+|0QpYm?75Sasro& zxTHshn3O&_sZIq?HS^eq*L;i z%9Z-SIY5vk53WeXWx;y9)(LTrjN$;7);0CaK!tSa=c%eiT5kz zc)#Mn`;~G!OaOgzDobXSm!`m|nrcVsjOg5HRi#BGWffDSbBn5Ptd1@zFNXnBr&g6t zEpn7*%qcFN=_sqL(B3f0QH8G6kXBhyJgcgzw8D{IR!j~>RW*h2&X{SH<>jSpu8wZ< zgrSusrO@P`Q88;qX;qPx&Fl;7e z!+NM)aGHmg7dfU>R?Wythm1L;#j~hd6u5Mb!|9SyadTN!WyK7vx6`E8qe`o8E-Nmz z3dyaRSqiFcoSuqCIj~(|Ky^(;v6V+R<;YnTjS_WR#`G| zR#|yTX_bmVP5u|=t4wK?Ri%(qd2{Jd+z~9I!kKwYWm(Bpp4W+47^f1HFBO?qR6MQp zYV*L#%JR~p3M;jFmaGa#LVQz-+8b_%91K)eQ3_c@D;;H1YG}vHOS!*frB#*T;VUY? zCWWd^!A6!=&nm|UCRMWz$MW+kt8UD~KI!ZQf9jgffsOrXR0)Wba9R&MCZsm=o71vrumQF3J#-7I2zs7%5<*cgW(yMZ%6_uAyreg5` zQPl@jO~npf;lQ(l>!(U{dSz8isf1B8i>j(i%WH;L&YXqGr6mKZs)}mxNc?refRYl* zcHQ(rRYg;&M0Ch5np=}qflXdiUN#qd2ytdBYmDQ2gRkM0rW+k7+9l6i>t9t86asupZm4_8DDKIk_6g zvQj?Btm^Vn#}2BhXoa-W_3@@L)j1G04R>Y5wD(-8ysDy^*a2{Ks4kr`xx5C)l%kR% zN6`QWUKl3N!jaKA7M4!YmjIYiU0hjJUN#v=W#`po*yQPWeSq8{r8ST{rl@?Dm9P1w zV{j>sb!Ekn)pX6kYfM&?3swswaQ@*%WmS}@FDjGEX?)XlY07}TqbXMNNX;`g_i1*G za)zes6`6s{Ro4mUSe9`Uo&rUxa4e~MW@R-IUY*sTsr{Oc#x?EMtgg|jmGF99S`H)e zB0a349EVuvr4{#YMnM@}4y<;qhG;sEAS)Y3GE5&_>KIs5-RvqpwbW6N^`|UWBjIIc z(5#ALY{kr?iW02#ARMBwYeR0Oy6oerb#-ahv99LPu^MZsws5>Dnu^_|s)?NkV{m!p zWE!LNIE$A691nPKbULRg8&GBc9FT0zbR5jAZL(i`*HS>OQIK9br3gdjlvY<`r8w;M zT(922p|kK_=sJht$Ek3>x*Hti>juUW>i$pnmXafs|TvS$3ojz-3Io|v@N-;w9^_zxTdDs-Hh_l`QlP`}sS9{Zy zUiUXn#p6A^sH$j2DP9K4vCpUBIWVZQDwjjEGhJWHis^0v2ZNjOWGvBl)Oepy$NaDE z7SyRkw+v~Oc$+(HmSfnIkwth<@E>yIR#sxT8oJNGTaoKKU)7(j>Znshx4ZLxrGPd@ z9(kQq?6kuw z22|8I@K(231Rh(mu?;_HMX!00UT0UiDsp_iN z2|`8c(R|djS&sC|*{Y9lRdR4xEu$^nnmnc#@CZj%x(YQF``6Bc%Bo78cVpD|{w6LR zWJ+!di97GSC#sxPU0ze5&sOZ<)?mj0uW@W%;lGK8x4Sd&ApMO8h5w6##5K5XbyRBe zI$XV9DxLOs0Dp>ZDqp2sQ!Qn_PF?WMt#WqOl&j7#ZWTHy`KT0J)3gI-^9jp`<1f3R z^USpFJ+6DLZB{G1M^@uxZb5EU%_#gZ;=CiozHV(db=9WNlh@6LZDeJ%n(2SB_a5+3 z73<&l*-a&ZkZkBAVG*PV3A>>qErbN3X(pj5xQ1j2kua)0-Je((Ev|7dp4nexmtPoHPzoHa^hlGvDwbYkUV_mx{geWDYn1o!kXIElTr&P*RITa1I719Mn ze{D4j5&4B^YD9g(vD=X%zTh5GrVX_WY9Q;)NDuZx50#D><(W+nAK|s#4oYv0?m{+f zJF*MiT;U%&stegCFro|H$S;};*(5lU3)xJP991ErxR4z}L~w^`7ZAN2b>w!$sO{Jy zwzgXbL~9`%8Uh;}rG<#T{35gv^?uQrFsGz`P-GTd;~$lYdcTNFl=wwlGRg`r501oS zn@~}hs4)X5YXlZh6%c&|)CNXg0oA+>jJiaV&_R@c#C4d4)@bW6&5UqBve1E;jI+p1-XpLO6*m4khE^)MQX+iD?co^oKOS0VVTdu52xAKbYSv&8;82atrHT-&BQ&9}r!@#gR*S$M+qja7 z*_DgE<;B=W)yZhy9|5NTCLBd;A@fIQcNqFwNXD_-Rvaru1eTUa$oXXvSt9G_p&Q2=3k?rsPc88=gq=_(OBZd0)JC0ttuGQ03(`L&{@ zo(%}{Nf~8lH6jz4QB}ppK25)uH$^yWfNeB+1Hgi5_}0nIz0i8&=nA4`aR>zasHS7& zxfyS1HFB&JTb$$23TjjXCSD6_CSz}2b^u9)376(unP)L(+x-2{IkB9>S`Djwn;0)>2u!t-9PG@qP~6lv@f-^dw&0^=I!*&j zPuFC|iyd-md<|UL=tWFgFO=uHAoUGidGIKs49BZ{*qug)fD%s~;!z&m(mbGwo>x%E zy96=R5f$UCiY936@o3X(#8O0?QCTxIy;y$Xy1aIgPu}F0@H;aLEh`smGw0SW#&MXk zg5sG7ICZo=<#MgBdCE%bxF4-~>KkitC(vhDrg^*pN6J78*;JB2G?LkRL~Aeti1oPr z4^Z<;5o%)>81u$*QxZWcH)k87sGxW{_R6sIlT-Ka1C9g(3IKxKNH(JQa)=BlTP8NS zEM(U=%_t8DGkp?kAsv!0VmDq+%a9IZOA&6d+&CHnvln>OPQ*Kqdv)$fo!TbIIDpI&Fp32T;p(hi*cg-%z;dh=st_C&`)@^6t0vVhHkMd2E#rf{^MsO_X5oTRo=+?hq*e#~ zU67~>-taAET;1ym=8onIS<1G# zwY8*4o^ZK5${BDEiIIm<**L#e-@(iAS;sJ~hd%lwudLS1j()<6l~fP?*5}cEL9P6T zN?_B!2Jbc%+tA2ph;O4<9+?G-D)*uac&Y+tF0wK;kw5ZLWw6aRKa){VZJkGDm3W;~ z1M?|zOgv-Ao$AmN(JQ6w7@H7=MZ=j=am-7XEkT#IXo3MO^nlFpgqGeBnhVFobG^b1 zR(o&~9^0t(f}x@a9(b}>mSXCe8Tt7IC7wxH9$aN+5tacg>lsyKgK^R7+Iq;ZV88ULxa%jp7B+Maf@D3mO*70XK=L5icOrl>w6p8PJU5 zZ~?6;hyKjcO##GJ))@?^-ar&^C@UoLY<;9^a$A56n!J8;TM42usFH7pF%7a}S&-c8 zCREN&+5kO3g8E6RlB$MWptX^zR7c4@SRTSFC>Jknl7)P_tWtGhDOB&0T17QPb$;Nb zVq{eT&D#+?8e}@V1spH zy7g2OP($K`zx19)1r|}@IOP_>v<&5VQNjQzwTnNbz;X+y zz$ycl+>ZcnMQj6)LqV&po{Ix3a-xD=Sii$)(j>?$^4-8rl$&>~)6o+(>e}R*&NSwE zFd*0>^$upx@8Jq*W!YWh?lm6Wr~zZk0{y-ryH-sUnq}0;G`t{|6f*F!2}&Rq?V`94 zD**%&NMZ@174ZqEPz^K*iumAYCe)mCG3T!4Ix8nDce1BsYEf44)Pmf}T5)bxR-wn` z$(o*3G|Mx!V1_3zBY&2sBquMcSg&-4t|T`oOr$CwOyXEGaHLURRpG9H2>}*Q<55j5 zxKUwIL1tEQaX}GwuBPRec#5*Ji5Ek)tfJ`|xgPwgCu3K?CG%v+IA@6(W>@?dzC~Ur zwQs(t7bd_b14yG42_r&EvqV39D0HSIqxfV`aY;r=7C(zh;L9yVli}Q_ur4Qmdcny7 zbvea_1;zel2sE<_OL7YG3nmp~LRph1%__{m_FRb-sEiYGGuSR8^W^-38HgaJ_yZE# zd;Ud6cwxbBMn+Bv;tWqgz9(~PPVQt3WgV#~Bi~a}09uRS1H)M>^}g8!MH!hTInxC? z)_SuS*d%9Tt)@g}O!mykDE4GbDiDP8iSVYP%Mc{W3>opQlVX)0W&#J|S0?SFtDx*-q5!S#cqA;q3Ce1I-2+Q>%(!OQ& zmGTiwoNs3`1Yy5OEGg&DzUqXmv=YKH=v#Pv+zt04uYf(ReD9*n`B=cy$Ri3YtuL3i zSg5OYoj56LMlNkt2%rEb?JO3DI6I&}*+Pu;v?I7E6it8TN+ly%W-iHjN1X9YmuRfV zCJ0AhHUl})B#bT`BIobNBcsL&L`coKO z??DI^iS@k)nZS^%$}|orGAy*CmZejuG8HO{I>9M1Y0GU}BN!O_bBco>rpkz6DR!pP zu$LZ5i17^wQU%~1j1rwG0Y{RI%@u@_lqmh2xSR}Q6|X3kAq7V>_+8}1LnP$}BeMDM z4ek_f^kpI;2XQs}aDiyt;2|}+5Hw0k@wyVRjc=3`=uf%%$yHG8q$cDoX*!4?VqZPi ztr8wMQd;So&jd=jcv=HX9Uq#t3C3us$(|Uz!dtSa*6$W;6E8ptucebnJxa*Uas#+e zoN^#(fuRmT#^id!j||l#VmMN)rwu0XID<%2=u8nUImO~qJoqPs4ska`!&_dk&|B{(F&w*%Dn0%W5Is%T5J?T#0R7SQ5RVF{=@5+k zi+-Oac1ctvvJny%LOY0(&*LpKOtU!nD+K~Z5zn{DYi2NTc2R#6&S07*AAl@J4ge-q zKR~TiUWA0|Mmhy#;HeD$h0cKm2XHq#wkC@WNKZASssOzP>?4T>%OqgAr@QD0gRN zxo~m%B`vOgDVrEfhKb|ugM12KE5S&5yCaTe8O6$iLTqe(kDnlYs=47oM6fyNG z6&2Kjh^lo!L}pf4c%*Cr{f^4~8V}n~@iqjN2`6W?;GNZaDsZ%iLRV?@q!~7f#6E+l z%z>qlFUT<5h}gUwhBZ-rgV_#iJxsA= z81dkvaR>XT3joZmG9HK_tdAdBkILhzcd_qS!Y5T3o+*o|vq3Dz{bC5~M1(;=fW;^C z#C3q#(@tshHhRk^(L*;dRe&^lK}{gOqEO)~ZlsiA27JywxPvTJJ>;FyMUOQ6BX?yn zbj}+7979O8G`d@?5{*x#PkIs%lMg-dBpTOw89w7dHvL{TlRP!FTwh2}t67BCHRxke zj0Lqa=X?386#rF^C^RHpX#*TgHFB{tAcs;HjDngby@0^PLkWQ#!ZTfn7;thzfDZZG zf*MBfOW+2w=#=EG9$rD4l|+k|TF6x-GKH1Zjnx=d`U!Qq7_DWjN7IV;2XXok1RWM` zCUdtQdxYRQb~{zz2zkOgkMzf6=~r+X%x5gO>l@5-*s#{Rp(2h7GbT71toLT-L*_e- zhKOEfcuVp68)%1@IkIZcBI`Y#F@qZiI3`CH3JEv*%BkzNP1qwn5K@BY|AZjtZlR|p z;shx(Jjm^74E?eYt+c${(`IG8ICtH4eOn#Pw5ovL#&$Jc8Np-Scw{r=drY*##<^8k zv$a(nBr7mp%C&Kg>BlmkwNg5CZ@pg&oEbtEg-=lil(!{)hnF11xVEsbfLBty)TYDEDQasb9|PbJRONg*>OHa>@_yvjYEuJw0-uOe+ht6-XzFS5u%y9rVYge9%GTQ9eCZ*Bwck za8tE)IJqg`6^2y1Ia+mTL)m8q`g_t-ZoZNenDZ`CL=8#(jD zJ0^TusXU5Gb>aI{_=tT?h3vJE=L%J*2qhJz>Ry8JD^g837g52d5H$73$9#1xQ5N8Y zY!$}Dm%Nvm9Twq)n6QWC+B`TBJVR5}=;JA?hFUOHzXol~#e=$}vN++&^t^_=3X^Mi zJDk?Q(}q4IR>{penRac;$9pP32A@1WSS{X=Cd%r)IESYb3+Z3^It$IXa+{aw<|T;d zcebsD(6MEN^|w9(lf7^Y#$hyX;Hkbcr9tR`G)tM-giy4F$H#Ff{GN~0*MnN!RH3B>kBJ!<#wHg!vn-W!G8ZeS_-$srs zlN>k@MBVaXvfgqZf-k+Sj z<)u|^wraDYq_Uw3r()C_{}h^*%v5kCI6kkkqEY&~;A&`kId)xxE3ob=_f~W98#JE& z<`1(X-`j|j6MW63d>vgb-cQwtXv1uwGr{tDSv~7aM`|{cD+cg}@7`l#ou``xx$r1Z z>0;@x&E|S|$Y!XTTgm5T&Dt#WdPuWKtw{7tw^@;4d7qVGm^4*tmT;lq|HcwMu_wZG z>znS7?<>V~MKulTJt>w~;EKjb0peg8j>_@~EF*D>WDe{SMI>|d!m8+}bG7)xVuOw`AxDd-IuYDwdQ0mU2YsLFbY z5<)R2;|A^Y8R?wos5miO(;(lfn1z_Nwtf=A4)LBw6NP{Zsx=>#5s9`uy!p~wZ)qF+ zh_vDu76|%l(oEjv;RT);6o-u%!y)Kz&;St!BPQvG$;JX}^HIt1Sc<1>W5=g^R6^Wj zgIcs$9%42-{+rLOQnWJFUWz>BZ$2=E2L#Ol(x7NOWh5Kn(JS@3%QSiE1=enlJVCEo zwFSyL>e%taJUE|P>C?vQOO^4%J)WW3*h+p6)5hwKj(5XD0X80nGjaVliE)&KP|cKH zPpw33QDaI7QccDi7)?RIGhC<;59*kO)K|QaFB7|GW+As!=T+4%GD~1i<#MaE${fb; znL=wZEVJ=&p;-^+es$YNwB5&v&KiA`N;pO5GRI&ciMF4i> zEQmE;f?O{SEK4`8IuVFC;K<&>Eu$gdmTXiQXYUa*GBE}O)nOd5XuxomB95;6d9g0% zN)@XXVTHvrF!ROh3DuKhp?Q#3y1=W8iSMx0nN*)mo> z_aT{(S=@K*_|YCbV8DPoqo%f|sTyI4gs6g6w~m$mw3P-3us{+(g{klQVs-5JGLLxc z6iz8+R+ajEP&uPRI^POgfy}7#{$tUrc2Nc+uw%do7R|q(TRW1-f4$5 zAWyg$DnuC+OKnYmt-Ahjk!}~wT$mIq@v>a~p*m!TMV6M!G~KnCRt(;vOiDHLds<#4 z4vZm45mI8xM`0r#eaXPq5m{SO+fZ6%UGIs~X$@uhcqmLX5Uax}nRx!J4hvi#9_rP% z9CS^>8!fO@@&l1qsb^*sB`Mel78YB=9w~v`DKlwnmZ`-Bl1WJT!VJK1O&SMB@Vj{(CBV3YEQ4sDx-PlPY|E0zRmw`4x?LweBmzV}M z934ETdGJ)h4aS+JD2H02(kaxqZlECbhtwZf}8KFH`TzxrjWF^ z45n{uiorr?Wje@dsJ+Rhbc`10Gt-9$;UHBxeHcR&KF473s`!NtmL({y14QkVe+Qn# zE*G%tg@k1RK51Ej-(}S196dyGsSbZ-z@L1}0}Sefgg*)R<>OCkKqY=T82DBk3-mzx zmtl-tKp~_mV>FIa2>cQAU~GMyoTDFy)GY^$#X<^$Fve56fp{Q13(2t@j8A)TGCs*Q zALdVuhPLG$JrvnH1HGgUl>-*72jx?jqSB*>W|eZ;s{tINrNaBygnU+sxkz1=W5a?S zgPbZ^EPw@5GY^zkt@!9Mw!)hZT&sX35^_O0pq)YqJ{#2Ww>M@VsfUGVMLntp6w(h{ za`>cu&BQ&mDqDP(z-pKfY4fCQ!!NF2Y|55LTrEU7X@(V!&_TjhHc&e)4|g@dm~D#0 zI2<)g$Sf@gf1RunxLB=!G2oCRq){Wj`I}~q;&UEg5T5V@r~EsxX=Q7nD}>U7-$Enr zB^AKs6OSHZkbUeEJbSCv7S?Wpnwc7xwo=Y@nwV!Ls39#~1!hbRarTDR9A*C!K~X$P zFQ_&H9HquqXxh*c%-096LNRPfIQRJ0Z(4iaEv*vkg5zy(p!aa%M`GS))xkn)Z3XfVPHqg8qr~#qKM# zT#aC*hd)1+$0C*Jg{dLBtr>2Poh>L^jXC>(FLm4lnn_w0fvSwQbSj*9_+Ev8#E6I5 zn2p(2;+v5gwNe{*_`bzxSB1XRE@GLw8QsS*N zIdWe$?+_Aiu^Q$aX{8P``;iJBEnEX=O1cDE9aBEHDOwiXwHsgY}duzV7>pbvO(%xhOZ*xr;XfZ1h zlbV{YES(oKRx3mQ{@PiG8W>-w9Km0wDqPr$@aKZM%$`tEXdh%0Eq$D6jH*y@kC0DKa1^@Le`}(i1wOB$SuIL|2+{yuKv8HvGQ6uA8MpKIRXw|C} zZOZXG$eewM`s10QC`TEW20Di_?XK=v+pg(&5O`6~KD+1m8$gEc2+;uCtw)np}PR-19; zajcptaVMU{l3Z-iLc*PPWVrrNNMFj~Tzr>d?GqAehCfvQwH((m*7}eTVoiEzU4!Yw zIcc%8KpRHuu-Rx&>(7{7OHivo6-8*>b3o5YI>yYLO8%i=N7m3E=$W1FZBWKtJOY7KCddYDYcp8GHEfO|R8}?>YgW`7?5_2_=LOXeG)a8CoiN#+KA6`c9{1 zg%&uHmUsBpCgzkMEACEUqSixP15=i@8NtwKrJO>t=VC7Op~UDI;Vw~hsuz&x5$d)6 zfYqBKA~G;Kn#{h-xZ42aB2DehA@otO)~oRoR4 zsB4g=3hpoMkH6HCKBR+;SFD~#!yXEID7(v66@vG)rKGyl9%<32Khp9sVwfv1l9)33 zpw#2&0;mwm%3Ax%cth!woT({Cv?8?iv>@b>)_gywX)Z>HvUL(u1zK|H#GoTkhys;~ zsIb3Os8UQ(O;(x>hN99y(6MneHEAp2Md*JP7|oDII-XQ*Jg#W6y_&6*VyT2L2Vt{y z4ibLgJc2PdiDH^;i6aDebTIS1K}JOiy$rORz|X0Z!u=m7|ol zj|3#q@faH9j zoLP;PG_C~5fR{=_UQ$Km@}?GGCDIZlPKeEJ$2xC^I{$7}>`(~usP3$;Ql#PY?Gtq}G9HlY+BOr_&4IrGTMH(A$H z6gl#lQ?;(`6aw?aM61z?QX)m4Y9_D7pq#?TsVX@kQ&_@QW*_jdBh{Mw7n1v0f7(!* z0Zx_ui7`dH#J^n#8%-IN+36$iB589d7K;!$GkPUk@t_($mBr;+omiNjoy?R1BR#*l z`cp7CHoXzqukezN*inQ=Xv4ID)Q%kg z{H7D4Sb}VLkw*T=NM2=ti$Q}X%$74#F~6h$d7$+w1Ha{|1nC_Da_S3m1g%UhCFcHu z&UlubCM8I1IX4v>3_$r@?M$q=C@+KYNBRvGyx})Z9CHK%VI-{)o0%)4nh~-z^n{{T zv&5V;K2{vfT+fkVtH?wd5w21^0vl;IvVl8yOnjQnqvm{MsDU(Nd_wmieLJOYfGm9^71Y0Hns7x-W+1dR1$FL{+AV+@zHaM>|k3 z0pxiC$wJyBMiwN7w4E~3L4l>~PZL^A5%6Cj`ZQ~%UnvgT(T73!&M`4R5~dVE_Vl;( zB@o(ToDpH>me(Z+Te(M;0WrqA@ewR!A#_k9%OFSkTMbzQrDUAFKjt1?JrpA-tZFSM zsS#=|YmMa=i5QKFr@R;Qs8nR~ryTY!csBIY4LVjdFo7ba=FwJ|O+TgL3e9aoVtZ*A z{MVP{f!tRlMq2Y_CP}0%2qp~Kz*2uUNE;B`nvpmcWwJg8Jt@%)YUrZnf^4jS=TH9e znue`4>&9U)Y=$9x`4^pzSbogo}}^JV_AhiQoXJFB&yf0l^aVa<9l z7&aGb%IK4;@Ub6POzRD7q}m{Ez0 zJ!K4RuJ(iBYt47ajSfz5K9tg2S!RfkMQ!mbc_SZ5BrEwyTjOR6}LwPq1bG^Nt9mH)a)FF_X6SVp=t%>i7Vpx| zE7h{<32i!)=Onh~ZhJJ!G2M@u#1`R;aeyrowI;(%k>SX4`Ac@G*(tgy_NfEq!6Ik! zOa`lp@xc^VEv@DxkSpeqleX|p(>Hw7IOKt{BlHOj(al*fQNgGT{vd$~eNxyE`%;C` zSSa0iv?+n;s>4V{=tWvGG*x4%g}b7P9L)@HX+Ef;ilW>Eli{=)!3x!>httwCg^nSm zVU<`Y4!0HPHgJ|R4mTo`47AA{i*#xmbEno@#Dr?5=DJPI#7ZlMOa4*EzfG|ap;s`~ zsRjPy6~N`5sZ*YAmk(T+2c2!rR}n@3@cc+XtV>$FEevFnJ1{cT_a9z`^v4v;cco~k zCt6Hlf*PnN6!6 z$g9v+mxr6wBX5ePrqvDhY>=gstp|DNNzBz9m6pe!tYzkkFIZdfP6C((My~QGRR*N9 z4hb9jN=6nn;;3mA?s>S1UOog2O?zi=!Q-Qs6z4AM|HFeHv>)@J7Jcr)i{5$s_NL3D zJ3Bhq6SYKJ`_7I8Tjzw%>ZZGK6VcgmhRrTMqoX=IM%xmamq$f*cI4R{5n)cv7Vfm! z;v$`PTbv`J9j-e&x}zo%SILfu7?#VDC|;UHr=U@|Q*%T_J2eR`Ms%KLcSP7(5e?vR z(F63#ut>)&{LKm1G{-D{%!$x!HpiSWO^XYUW*I)_ghgv{_Q>dPG|<9(;iG+IuhQhs zj!t4)VUfv65iE!%{$5+6789AQ<{Sa^qN6+N6HujcLTuU@^_+;RkpQ|l!)%~oU~w#q zQO=H-w-`ObX~TE4xQkD;#X7@riwk?At(`MWG)c5|z$gYv(Ii*Vt}7gjygbkOp=RuQ_!KS1WwWPf;w~2DHgT1r zb#U3k#dV4nmty0c=ppXFH`%PCD=fk+PO(SD+iWRXa#9?=$>iiD+&Pv&z%ZC&Nt~S{ z=!4liIKxrO;aC$Mi3@uqS(7k;a~Kd7iHk${M|IM|ZTztF12fXXBlr=C4@_$?Svj~p znBo}R+0lFvDH`c;g@cNAYFxqq%-bFx9i!Pf8V8Kl>_E)1#2%s9?2aX|n#3^4(R>L? zfDizTZ3jv>udq3qSJ9r}OA=ca#h}?(IT~@ENX|zS@rgiuBJ2V1i|2=v9~1e}%nuC{ z!RW9*j^@>o01^Qs#DRXYB`k(zNSKXpOgSMp%4LJFrD%d_RWU9*s1D+#*dj39<{hFq zA_79xyaU))wMPR-^IFve2oI*AAvrK8K0x8sz^#zLXUZ9^)<=c}v*|9X6i(;@heWL% zg&SC@D^^M)DGEUgy&4TD(z2`D80VKgB6_V}d4cw0D?K-}mJ1db~J2$GGD7@=m^J;1Ft5g)%!2v20$p(uXflf2nL ze_*Fnfq8d;{rm!zpvQKiXOAYyw6JLWgE`edW1_=50ThTzGOe)L+k^S?3f*B~^qc5# zS0e_4tZsq1vctIBF*4O3`i~DgKf?JD&5w9~IQcP=AIQgojHz-mA!8yizV>=Y1GAZj4h4|V`Ry$`@D4z77Zil97R^$$F7V}nWf(qGF<^x%2Jj@8Ej$De ziICG}LoDt;svlZ$S{SSpG2D;815(f=4G-$>^CHqJ3dBstH&uq;&>rZBxTK#JbwC}C zS(cgC>!_Gxzgz~u;xZc07&pB_6A7r zfvH0DV^PxfxPw6yg1t<4vNUK6$kBn9K-upO`Y5zhuR~W_S&BkZqLvgVD&;lF<#)S3 zL0EaC7JZYUt@=QM8M^Vn>?v#Ap|+uGQ-lqWkV16qA;5;L?xSHjCn65?Gv_Esa6lio zuST!IXhO8HA`IEm8-+XRd>B~>!X}uisQ2w;s-s>4iUbz|TyP;+*TYmzv%A!W6jMF* zDgXg+sQ?#t^;c27Ns89PUrmj2^lYmNaNDZFV9-jd%31+RMEm-yt|1rWE7xJh_e0N zopLJHb{L45S|CVK=;RF3r=sK@KtmPohanAaDZzGv#d2f_8=4^oWyot{W>#Uft-~;rGkOdmlm7rI zTGH`KCfaU-fsT*Y4gO(U^>Z;rBQzCXPer6?DKK}|8L=d3pvzACr%Oef%`oi1_@iwZ zy>)`;{Dj>xV@_~|S%5zm$q`fF7Xz_Ku_vXv!j$m=I)`lvTvFqYrFBP5$vM;k;@H)Y zS~@6-8NU;?9tQjU%h9Fns)J5Lj)QvXnyx7#1U4Wt5K4+3?1e&-%PbW`sOvRDvB}jHfs*{3Zkg$ zBN6KpL{PonLeE~I>1j|4+8BzQMm-Qba+8AtLKD*pMWQ@7G%YO+Ex3zF=OB&y`{7t0 zi8afCa80aLkZuuclyGJR!m&W%x+Ibx5&Q_#7&t>i7~LSMNBE9pN(2`5kS?ZSMYO{Z z4Gj=*J0d!0jDiFr`0j!gpN^FH(yx&{63eKc5Za;@!*0N)=iw?~Ey5gm0jgQ98Ppi% zXb(y0B;2!H`=CUI3|Q`>8HVC|2McHO2Jiyz_jfiOyjr#ZZi3aXizR9&B>={v6~ICj z?uQpQUA5?omJ(fu6$l(0Y;|DX*wCCSP&r!GV+dv z$WM@Z#%=TdPLiIM5=_0DB&mNPO-fgtlBP2fV3Snz6j%13W_$+Eck!jXQ#B; z1c3S>#VY~PWB5~AfI{+Ecy`_SrX02z0G@!ntOUsU1=3uAM2eWM8*VyWy6Kc7HU;1) zO+=)~$Z$TpY{Jhvgp^BH2!4tSA*p^v)TvOV2YU)}4{R%~Y%h&+6HsR{tk6elnCbU8 zzMQ$10`9g|2V@RkeUQ=oVR}pS2EYll-N=GxH`DCM$;b#LMZ*M?2>Mq5!^6}a>}?vN zpneiJgr2$#V0*v}il`G7#GFWIOL`e}vj!n4wmvSqj$j)Nfap=QL6l->f?|;WK!76= zPgMbIN}D5ECLq$V$ZW7EPM1ou1b~Hf9EL#Ff&?{6S7NmmvXs!Ah_@#*4 zm87Wz>qk-8A)TTI-2p``NCP=7$^jQ9s*NhHI(5_F56!>^avI2H9jt{&y+U(YDT)o2 zEEJQCdW?4DCWxIvve*hma(HlP4qF;paOaX7Gctt+G}l|wez#Etj1OCT5Rr9|e(PWj z+V%%++k|gH5!+N02mT>-Zb+>{Sq4{3PjMp16=S)M$gO!tG;**k5gATgFy;IrlUng8 zelba8Q^Q4)>lI`KI$@WGGZ)u1#7QWN#J(|lVv{Zz4ozfF^<-K&(>kJUJMI^W0Xe|y z{MZeD9F0g4DcT5)@nlDR)K%#8F4pEu)5gWwxWQ~oXi08fuk}S>+N^0;Ylu#{MTq;N z;tV%qR2%+_dj0nq&))s+cekWncxT7E|LX9?fxpf?c*Vtkge|PPAb0JRDfgZD`E~E^ ze*dWtu6tudVsHD(*!r=*HLpJZ*}aS6ulPsQqJn`3(&MiDGUDL=1HGTz`0au3%V+1d zzv`*YYX{7kJNQoT;N;)m9@j9ZHucl*&pZ8|j?Z2*u3yrnj!bViXZ4d;4a+QiK3pfAB%VqofM@&=>^~c;Y71vJ1s2E(UKLHoD>-q78jkI zG|{FF)qmE+_&uq#68zwVFAcBW#;=uDHStFe%2nkg`5TN;!_r**j|&95Jt+x!S;vxu zmT3`8!O!9{0mIA+kFq&tVZS{t&M`+au{7F-EfN0fWWx)CND|UY(WV{tOmZ5$c$pB8 zmV4cpOiLxGArgP$Dw?uejUpT-G55!#)foV!SD7iab&JAT16AnXQXSNY!bWZsHt2CW z0aWHG3Wy^%t0F1b@gn!n4KE!9TkoiLP$#)L&tn(zN`2cwht5&q(a}a5RU={BhD61p z6Gp+2f}l34t@;MAD8}-Q*p!Om-c;A92z(mnGmMK)QDFu!11IRKenuh&#L_RNQe#3k zo=4HKXQ7-&3^Y`=1kDGFlLoQO7VFmoqhbUGdVBh8e+sC3JMfSPKVr<|96SReKt_`< z{7=k_ZM%tb&{iKlEIFYPM+y?7BK>BZP??-`TvR&?@sfkN5DkvnqwP`!gbw9_t=&O9 zp$*uBR9I3C1#h7>g8#U+nGMZz7^0yq#->F~&YCoB3Qqe#6&0@04rri`xB89&(exr{ zM_gQ7cnsq3$QThpw~L|uQ7UJH}J1u&botd-r2E6EaB+Cj8f zr^nH;Xrr#VM^08J+B*mq8s%d6i!dg~=C>T1SCQ}=jwL*q;aGxNtW0^31gg-jYdpE# z-NqFJKB0fp1Xd9-Y=eDUTQUn-g}LI?1sm{CNC#T2CF%|i1I=-qh{@$UP=RV(sA{B| zaV!Iex0XbUZn!bFgt1bPv}xgXx;)(>sMHb`V~fULQW&-&qX2jb`a_MAl9M_{!MnEL z^ha|G%5W$v3d8rMiNfIz`m81K@iK#Zd{MDYkY| zVUEF$5{wVU1b>pEg=pXc=71-W2Pq2Q5dfs&CS>#2gfB)M>)zc#C-Y1(;M(UFeJPp z;gB2{1#gn$lfT2Men=3%LXY1SFBdK`bQPSU=)MeW$6*9)rNNlvumR32kn-ZdLNZ8e z9;r~(>if8;aCO<%cV8a4kw62#&C!HJtrX1MAg(tM0dX9I5mQ3TUQ8a%@eM5FqQbBz zyjKMoBCnHma>L77FBn zj)dl`83dr`)fj|f0?u>@vThSISwpt-&<4M6z_-+UmOy1$EYEjH`^4gusCIf6{R_fJ zgDapw6ryOh1-QFtJfdh3G)QSud=gICMTI9N*%3Y>LZmTizDtZDw}>1ztpk2@U5W%Q z7!}b_CMQ8?lapejB7pq{s>=p-jROW7!kk(M3=@Oc7>X4G-Q=kYr-m!IOIYIeF+9Ez z9nB*iTR^`gY7+qAFN#-N;Z&n=&Sx8r9z=!3M57h8jHf%I!U1-h=(Yu#DXMs6XiEn{ zQ$X7?-lmP#LnZkOV)%KbH2zc$LM8FrfJUh(^zc*smeBM{?;=ghw`n;!QVq(N40iHI zg&KV%fxJSI{MjfLsh=Rye>hY9%9*dMzEb>duppRNl8_%XP0#YeIOCAe^0N?PQ7Sg4 zK{w24xe$dN;0ol5En33iju}z5bfbFUfCX#;VtIKDm~s!C=7pgra>t@u^H$uT-Btl_ zt1xK*A;$a_BxO!m(Ee965=bC2#actC3N8jlA<6bEFc!t?8x?vqO9Y@}D3JOink5R$ zBrc6+y~P1DQHI8j=3k8(1)x)uey9XyH3Cw!gWp8EWf&s`Ip4KF0VY<=rWq6w1cB#_ z#3Wm~fl3IqNnl!nm%9nQ5SQqW0{(HHVwH4}oT$FokBbUN#)=7P4BRp*2DCxk&TS#+ zM9Wy{1a!==L^@{f)O1mOF|gdZL5CC=Ye+B_e*9li2M9odi3W6on6Qn&sc#gbWRjUH zcu6~fN;vcd-EVx)2i(1lq+a z!TBB0j+Tj3{1-4u2d(!GK~2vcF%xv+8lhUYhBY^fKmhWO)p`cmFKao2T=WwG$T~*^d?8!Et{01CeFhs9qLEkz$PHSy zYkov87t-HSBEx@_@d_~`P%;zQIPaDy4~g63RbSZ-aSQs))GO6BQ_39y!J5IwshdQc z3}iH%80Jt=*psa>`4~Nd#?URZjh5<;jZ*9h0P3H`#`(L%2n9AV94j$7HA0YmFm-Ao z4FJ}bIGoM1LnI-uP{|{b0J{rOB1UGM1yZS62#3yNkcHxdW?h60#D%zJXVI&jI8O_4 zvoVJP0J0kJC^F@Oz<53)R0Se-B7@bk9Ki(4Za9=_;D}bllJTE_C0dGkBt;1rs=x#x z+6s(h8M*=l6-UT&l|alQ%S2d2rPdZH8p1m{BMLNnV^DJp0ukW{Y~MDFRZUxGnym;H z%Tk0mbSe=^a0$qT;6Hx0bkd7uBbZm(O0lacaiQ@Pc25kfpKTM@!r$$XD*<8D;2$Zy zx=I60;b`iF^6yg0FCYHEH1s);s12Aoje${^APk6M8vs}~lbXyOQ_7=WFFJx%CIEd| z2e>IvZHB4u%bq|pgR+E;!46m+QNj6tgk3+Wog}t$*$R>?G}_U!Sj6RzI9kpn4$YE@ z_{N9~7O2gs(@0m2Qc+-v1Y-&Sl8oQ z>_OpJIjjj93etm-%jsTmM|qZMG|kgq|xNEJw73XM4;tr zd`q_amtvDoX^oIbG$ge_>;uqwf85q|^4AeD>7n1SCn;w+|@kw}1$o6WE~z#<$rjLIrf!<-)e7qf&Pk{M`7 zwaoG{9gPUGGg$UwQc4uo&@I^dwAArluNH{O{un*UE}~jECvcW)498dz>a8aIY2RSa z*mxBhF!4;OHvdKdYp$w!VSCGd*~^x87G-TQhDUlCOjDGqm$6tGwg%?@?HK zm&A3-t}m_jE~>3xpsyVAaodSNoC=DwxN$Ci&U~0n8}jrW&b-R9`dVM@yas1xZGByB zeQ5&*NOL-YiL<`4Vt#|qS(aj;chl9Mr4X} zOXqs4qTRz?>F!Z!2-%!AEml-as>e@X&+k~|t@7gMpl46Y%$@CKgU)DBjPWYVyqt4* zNqwVN(|X#pE};b)sRI$pL?N&2twG)xc!)^kcbQRNT9;p2WBhEe_&H{u=(A_U zrzLF5gme;0qG#H*=rML|DNHW@aN{k{Ic$3iF5kXokap8{%v{sT#>}2Od)UZf?%C=Z1 zG5bI7U+yeYOa80jwNu^sf1hD#XV!QiWs|F_@=7afv}#{jZN1l~ z$$U2_VfsI;Y<NJ<*4h zw7$m4oY}G9kcJ1Q`9>Q4yHFbfxVgYVzA>1z;O}B^mi(2@2DG^YG&*{^rJ=PG@8OZ} zyfNYMePQxt9)5300{kkd^Oy$(b+o3LcvG*7PWGXZ#d^K|0$@) z1{Y{(qXhr_;RSLr6c5LWei@J=zJ#ROct=*KzQYCo358Pq|Nr}ck^+Txtvx2*Jo^91 z+5bO3=_m2NOY9_QuGaDQMYcO(>C~mabg)I)*SC(p1w}X6Z8mqTt6gNoptvx5j|k0` z8yPbw(iU!O9cj0PuOIIk>*{JL>F8<~X4BS(-)wKzT)i#*!aLpRer4=E|JeCU@il`# zt-AEkudnT@7_h#z^VzP}@a?YFuv^xL@%hBWp+M)Y!N_V zk-#WyT6koleOj?Q(UlO1o9M)t8Ku7Y*q>;qt#QY@;#e4!7**sgudb~rcc-|LSQ3*M zI+}O)cJ*R?SYkIb+ApcB_NHR1qPosmn3>^9>Ds|P%r!iHsC%S)sC)RSxE<~qW!$=2 zHv3~n!U@dmGcx`Sj5@et**!KfJg=az$lc#{yu3}R$*ioK@2z)EF3xgh73YtcG%71I zb*L+2Sn5dkuwm}wU47(Cl0wczUun2nar(?cSzCk_)@thrL9oTxTWvP&{@%xZbmp!n z{uub;?y9pdxno7*j;kN|V#z@7KhOWE*XH(3rSnQkuZjBZtusz`U*GPYB?GE=Z9L~< z&%zCF{A1wr*NnNv({=g6j~}`ws^jx>OSe6E=fAQ$4Gc@`w>9~s=#Q7YIosv9?fQQ` z5;v~6OXa%l-u{!GI*>j*?w5gwK0M8tyM4&~3;TB5yz1E>Up?XUnb}|8k+rSz!IFNf z9CQDwjobg)Z|_g|=fKKdC*A$cldY4!YW00_N^!yyA8bypy)UM4aqI=(_Kd#2XGQIs z5lc3-yXomg%humA^QnSE6+eD>@cEyIzJF;}+%?&q23(wU#zQ~fdFsU6x(6zs%zojm z1N)v^`C+Vg_**5-Z+x-NIsKluK6>R5J0#h5ORKFNC=%gH21%3S!n=fbdc5M}G<(l` zV(L4LNj`u1x&_D0OZY{|PI8~{ZmurPo%#&>_1&WEx|pvg{;}|n`v+}(X88RbT_x<_ zD?HD2vMXo(l=WFlGv_xn)QuT3q^!Owty--})5>bAhtw^oWa$trp2{1`8hk?xHc}pi zI6@lJ(8M(}G8)>*tsPrOYjgt*u=XL0MwyKl?OKW}Kx3-@n%_L=iK?{fUmvHzv#pZ3J~k}os9C(+{yM(PxEHhQwrQ{bFl^54w;VV4&g1qj*ziQh4j1oAvG@FT@q?E*cMaYg z+b}Baw)jK;T(x=d#IgN4-+9-EPrr83Rbj6z*mvuFYkSO@GWq-WTYG&rb=z%~YoAK{ z;^IDEM!!+{+1!uL`u?jvPxSWwcI%91uS$Kd%i_*=j=y>TMSpgE{Kum(F_z{P8Kw*Fl)Cw=Cvs zXVva>$M9$OPD9YEX*&a`=4$dc68|Cd)yLIaDt!+_T9Do-_d1I!D{5dAEe32@db)e$ z(9tfJG+-l*TUW~k{}tQ<44H0;!`iUKM>I^=oHgg`$n4)Qd}-Zj4`n~Ub?>%>(P3Ne z?d&__hOcgau%^e@35UF&4Ez4JjlEBwzP4)S{wp`c%zpaK_lt(K_g?2LomlL?q3Vj> zOCJ60@5I8QGggl|?U9)q8%i_oxccKQ{ql1+Tw9mZ|MYV!b{3?Zbz%07{{CxUj~n*uBOeWSJ$kSy{f@nN+%+vP_x#-H&m_h!{66Zpm#5tI$Fki;8&d}S zJ}&jO*DhSM^ek_}YZtxPZt~K-wV&Vn=Uo#gZ@lBOJ`-AV*6qG#R$=0-ZoWgA?Y9hi z>wMS53T2qi0HtP!Qq(Yuwd!^HzBz>}rZ0W`q_MAsAGrPE2VQ#O0@o>2?u2mIi(9i@ zlidOQ8R~LVlp+#OfRh_Ne9+usNMy}(4^160udFn6*l5?h)X`K{nb0G#=Y{`ITyTp z(H&be*ZI!v`eMhgN4)p^1A}{>{zpl~mHoiuP%>zf}IU7IzqTmChtt$Wnd^Oo=X7k(MF`at!t4x?tg zKXSnE)ni88@YdI7UNk4}xP;TsakWP5fW5m_+Pj$2q5XP@D9s%}ESEk$( ziD=B_8a31n`!#xKI*eJmew)tQ|4lo4q|oZV`dPEPyUL$PzU~aCbJE&{#Z}{bzFqtB zOW%LF;O}d@#DDzJn1%~_JTzo|`oTjVK0PVF&+dBdz2P%rF4=jvGv}x8=HHcf@`{a* zHJyCc^;4q$`PcCut!rHN+MT}1=fBhP-j9#{Fyhu1XJ@^C&z5l?514;#kJ~ra`=)>2 z_3Hh94Zpg6{o4yYDT}f$xM)$UoU@dJ)~eq{c*_37hQzOrFduliw*Q z`}~d6x!-4v`~0qG?O)j&ZhZZ;<^75eoPFm>KV-i)a_p!Zw=J5zvFnX1UP`!P`q-!L zYUc@iQ(3UnVZlyyb);oTwAl`YN4Uc9WwBl%EeWIIygg3aBSEk zW<&UEl-U`v{q?##|IL1vuHL)mj1xDxYi}F7V^6B9yV0nVJ-mHN3^Htu$d=&u8~kip z++D3_Oq|~T+E0&9{PTppF~zHA?Z4GkC~aAeYlIaOPKWLuxkV z{PLBj@$1|ZQ{Tzl68rZ{U!=Nk>GSfrg=?C7&$(;dklaUa-ZcG&PwKWmyzSSf2Xg9v z8UJO*`8)Tv?^^lN#v7cezsD9nJN=c^PfmJcN8RU}I@}z#ar(y(UwZP4A68Gg;rk!I z{pORUy@ri_c=~nU75BO5gj-vauG)8XRPqn|@_${vVdsIwjjQrs==sJK^{Y=ftNQvL zzb1WG{C365#~qrT{L0PCAM1Z#Q`z*%H=pv#Z(rOpbNUC@+p{JQ@%;49yWeU}ule)V z)rtGRs{H(pn+HGs!l3v#@8xUX`}yYI9sSyQM_v8>*}YEM{`%hO2X-yKrrYcnhj;OO za8+{7<*AQv88$iToA}N>v^gIPKdtwxYo2fS%|&s`3##K1^T(Y#aOw^9um4!J^QnV% zx6HV5#*(X7tnWEB?9^XgyQLzgVdIFeQ-^eY;j{XYj-P7p9b3`*ThVD? z=6`+v!lpej!`f9RHM@K5i!1ry(+z)oIwgKf`Ii)+Ee-zZh7^CZuxyXe)Ib6ujg)Qa5)pcirQVWx^vFeJttjx_nO(Re*e@K960B( zgO@~g{3R}Y&3Bi)-0P*GeJ@`3!%r1Sga16|^JU3jex85JhNt=z?_BYF)@$u{oqo@* zt&_rU{_VD^t18|Z@P2mj)}^~X9gv;Y|E{G4(~8>f4;%c)nJZViYA*h9mTTSb=e>RH z{Retqd)}{aB>ouvP;qt9wyc#mP1R1CGB2V3zQ<@I>1;`yRg{CgOz^Q}=yW-1&oo%~$UKe8ri&o1gmZ>K`J9Tom@j zsuTJiSNF%i{@lNKZCZz4qW0D8=$60k@&z&Vs~_Gl`i6?s=T3?Ha_;O2UDjOYoUkvd zNBVCsyH8r^9yh2y_JuF&#vQsSCh?=EV@fao?wyCbewBaO`Ogg>bown%e6?dq?4)zv zDz5MSjce!j#opPc*}BGbihJXqo!0z3_K|rr?@t}_`EM63efgB>2iDbHU3J&!+_(PK z^u(Rr&YnB)+ncW+I4p8ekGU_7OR4VF`d#evgSWqydH<)s9bEFjC%0~D82)hnb7%E& z^jjD^wrKfTr)Fn%+HwE=Tk|SjxM|X%=BD1wH+FW-J21&{dXE=wJg)by%r6FgvHhp1 zFAsiePkM81zZ0hR^_=?U^lxwbaP7LCV`?93>E95U@Xf;BPh8*nRR59(?>%$eB^wr& zZmZdlc-s?qPWjGJ``4xERrme<(J3!1@AKlk$JQlZ>?pU7OTA~-6%X(4{pkZ+cb08i zToUnCMq1%rS8v_8c=P@1uW9V@?v)oOHXb)5eN%MJ`qP#l|HS%lFWlMt?XOY_UcBy` zoR5F8d226;UGhTZ3!l||dHc1mx(6PLd+xN^d-8g2*z^048z-bq>$2d*#9RJyw+?v1 z)jD81a=b36+y7o(LS}sf(X4A=DJbh|KjdrQhW9C=+cB^~RIb6IOUGZ<7I z!`%o5AA0}O0j;;Lb{|)F-G{~hthnKW?mbdmqj&XJElEXeJ^lBkLGS| zg=iQ2lR zSBFgJGl{!h=bl;7W#f>if4CxbanAa2ryhJ}-}y~X#6L6P@gH5InlJxh%=7=c?43;8 z*XNG9`KJf-mVI2gW#;UxgyVN7oWK0%@2*ZeA?@6rUtcov(zKsyK6vxHYxa$B|MI}f zEsKBMc;N@O$=j~K_K9J=Ug;2b`|a-jx30eLxC7z$ZTj%u`yM;zt6O&@_51FoW!}bT z&aQ}d#s1K4SA4_egVW-DwwF8Jd&&#%O<&gV=g!xgN>4cDvQb-$->SN&*X!8_x_=*a z`X?8icJaXcm1FCFbG6@pTj9(f`YpNe%(cV+vF?>Wy2M|f_+Iw&pBKbzXze%F)oSl+ z@+i{XYVVAq1R<4||F1;>p?4xIGC9Z9&BQv)9c$b~*&vaI%tg36ifsa{QIWA2;TnEw zkVJ0oJz~_8$?F%7X{fwu!G=y#W8Z%&+bSzawNh4`&v%TP-X*#Aqy@`$3xO&71kxiiEk%$4#A;a{IIUF8#Qs z@`9JNaOBViMUBhPxNH5c_NTb+8`FK}jMwwueYxN2$}7(9wd}3q)6X57u+h z58Uv5&p-Ek_137OOE!J7DP!s0KfbUJ8lQ6A-zftxSk!Cfc`^6h^u&)lPVN0_eq+z# z_E#3(`2MpyU9ElNO*IX-xm){Uv!c(R2Ccbk)#qyzeF52VcO(hVSUT0_4GXtJ-CVQH z&bILNOck}cb0v})mcHT6;YFqEZn8aj!9~4J-FnKIw~u|gDq?w-BRTEhp6}1Q{mO`k z*0*-J5}|cGLhD~Gso+s7`c!x6e@nlQMT|Yl%GFq)bl!g@-8#V44>1&WvU-_$l)zN5 z6Ztc@+|Y8na5>8Dc8_2_cm$+W-Tq&a4}SW?w_n@$(D@18L-&{6@niiX-}n8>b8FIl zlV^QZd&3`f?|Cb)+q}|!`k@a8l_&iCb=4PI@78BlzTDdVmQU7}c`tqJ&E0=EZ~3_U z`46ucd*Eqsc$Xm_G84yTTTuipV`>`v+QS= zuY2#3J$)~J{HH1XpQv8({^CcT@ouOc`Q?tYZd-TPD&2>URYc^{#WOrYkI^#{{5Z1N^jhB-Gxt#zx$q@ zF|$5hahXhdV591M#N+44O8M&=)BUA>19Lb`R9hG z)|7u*81ZK7on1$cJnn(&O*SXQ?&yLQ_RJ=e@~ zZ_Yn8`{uhY`s2{90|$1W zG41oo3-Vrj?8A-kZ{L0PWp92m_4({`8rS%Kd*+3M%i?2yIUzN1vEz!r7i?N{dQ#4- zV{RLE&D{6C`RtSS@AfQv{`YRB2OrU*H}8M>T*t--Z+pypMqKjHS))GcvNwJ9dArVW zM73-?@8LVb9?T7so%W4Pk2B1WqaB0o2myQ!@V=V z|IP=$&;9bV+pA-?u1b66!X@?1_x?IQ?u>U|-rlo$Wx-_$%T8Yuz5SC*H=keIZv3FT zDxRA1^?jS>oIQ4H#Ls73x;y*3>9c>hebCmlgf92&TlL0A1Gap&d-a50AO3m4A^Yc# zy!XnEzwV#-J1QkN_P1{it*YL3=}BFe4Jg}FST_6f zJO7w=*|QlJj0~G-t1G+d;jO>TpW?Z>{<3z(aTB($n6y4|^vO?WTrkA->uLRd?e$1% zepCDH2hW~!)5tU5ow{Y=x*=aYUNvH7kKI@PdGMnj?>#-e(;bP4KM%a>=NCtHd1v_N z3r4wGqj16@Vy;TJ#I1ZoxPq_%VR5xA`>*%{q{O8!7-;%}wsY#HS8yXWGb-IRe6&o= zj1aeO7jOU9y;iF|_~3$_2N&!(xB#8o{N3;M@kwc0_SD?j8lN}p(H|b1+54tRJx^Hh z#i@mNJ{&o!M|jSo=Reav<%5w6{_+1+cjfU=t$o}uWX%@II`*-RGZ_26CRws3NrS8* zTed8Ngpz$Jhb zJa1-NkPGz6$F5I|93bmE?S)n6nIfynr1q$ZlUevQ!FP&+Mbi+T?d|f4O0r!2%)tD- zQgqM@pAw%Ch8MEM*G#9ww1erFvILD^M@b132%l^&m;EBtTZ$)BTv8Y#?$?tZz`v?x z7|n{}Y?N@c^w)csMt=7QdvM#zL%fiPHM7Mo-P&t$SE}k*-8jwY;P>0P;o_W0630Y4 zFBQiWFtX?6Tg{1LthoTk038nU`gWkzxwc#GZMCW3wJ6BkU$PpEp7uH%eV z-N6ksds#g@~GiA^L(uXCd17=%}NA=pBtr}uJwS!-_JWV z!Xx=3<;Aq?$1W>}H4zp6nc0hLu)0Ws7f{S zd{WP={?KcC{uD?BAv3_Q7Ss1A$M1sCpA-gu@UDI-TWsZrb~7L@0+P7MD5VF7@U_Nf z^By6)*~3J@QYH8S7AS~BfOe*4rbdYRUoRVg(-)k#ptBDa!1ln-3=lRG650m4GrQmh zf}Jj)18D7TgJ7rlM~ZYOYO;%Te=@!sfVr`C@-QeS5x~R&nCLy@4uJ>KL_lu$aJUd! z;Xgav7I<4aS-67f7F!3jin510cUQ04^ZHECgfPmlrnM&P{Kv0BixKhPRg2 z+gfUCXW^!uB^wbirk@_D+vsb(6oO59rSCWcI-W{OcpbD-7rCs;H?k?!RgGG336rBR4(e6d-e!zAOLx&(0xaYM`9f;S~EUebh~P&p|sB8Y@E>6YDsdzA>T6(gxZ+LsNZ5)kf zx&29vJzzCsz1F^5BXRt#yC?nJtXQ%aoyOPxQg$2n$-<4zt8YmHW^JVkH-UNR@#~|b z?hY2wGTrHhTH3V%Mr>K0ltQfD3kt-=a-VLs=bF}Mg{B%g8)_X@sZ(rCy=X!laMb>@ z*NysW2M4=WT~}%{Z=I*eK$>A7kmkj)lpVG|4On`Al;$6q;2owpr z;*fvc{Sw?$$3##h8x)40@7Pg%tAYHk<%e=< z#!c{=_O8%C{C)zDYcGgGC{?e_xPB0qZjEU+w}MN<>D&q+IJ31aYg%Ek)^6fD!=pcBY09G) zM)GLQ?1Rx9uLIQgb( zdCG>;=x5j^J@VX;6oW4>AFFQCyWCcsS7!Lxf{2%QRDC`s+Rfc%n2wF5{(x;tH?0KYrd(K51nN;d#6|Opb-3(j; z{d#UG_Y^wtM7NvUz8P8w2|(-=0G<&f02i{7i7C#-6#Q*bSYf0R3XH-kDhP-vNg)4X z6gD&PU^QsoID=U}<6WXogyG#L>bO7Q%Kr{g2fig>!~moaQdktVl}8prfkYkL6xrGY zF8x;|1sA}vBPp1^ONt+Z(pxeD0B^cqY5M+raXu4Sl?P?GBy4VzI&pQw-!{(PO`oC< zON0N%P<}DV$;taEHaBm?suxg6*c8g zbd#qM$XffaTGintDElpRX?%8klk%ka){-|bF>-NGiy-=bC?RUvld)(f`Kk1jpz_1K zl_AUOTu42PDAx1oW>sCQvgsMxGzh*no91pAbrQT%<9|w1`@km5aAef7lFubohGt=# zQFm?yHr+CDQ6|qjQs|og-K5?gjok8M00BT$KuCC-qW%Yx zdVerBNKZ4j>FHL82on!rVgO9!4-6Fp$m|hJ2rcpt8LEzk`VKu+($N#NJZFUl8fRtD$9$EtaIeIr7?6M@Q9pC0I4YhO7_6@IZ@US1(}==9;Qr$3%K zj7s7#)Nor+q)+zPB<6ccj&Uj3>sYidPN6vY;Z;E|%()l&W%jQhb$oc@jpL*N zD08q$ch2Ks6C#ays_uV=j$ODRbd3A6L80K6`){rbSDKrpyfl)ZdEb$26?N^aow@&T z^D&ZWu5pREBgdRA(tTJR8q;#Jr8oS26YQcqZ#wjhrF~@D6d#CNX~7aFgydFd&=)`z zgDT1bQrW~|Wt?v;=hjwg{Va?*$-NO0Mi;Z4eR_D&x8n6^Bk zI}(+1Eo}pV_gtPbtyF-2^B3@mA&ggFqQqqIF_}TK_Z3$u!pS6o*@#!d2r8b{IzfGI z*0slXv^Xub;h$eWTwX$ACFx(R8FTKKFchYK=1Vl6Z-D;QFi zPSkOJp4HQAFkw4lRNp-U)O~KB)cizNYpOky&U{2%u&VPUK4O6^QwKG;K*Y`1SL%mi zCVV(3`m)z7a>OlEoeBh;9LgJe7J%~Qj)Bdw|KG0y2{O9%3f3!c3H>ga@_(m=lcTb^)J#Rb8GJ!g$N7< z(7Dj`MeQWskk3|cS0AaZ;ybTlJVmg^v~DS%$9P95x&=0V3zf)K5%w&fllHiXoY0By zWR4{u^ggedn|g!mO>pg}3?zd0RqAzaX5%R0w_b~wSnJGy0`k=$BVPJq6Qru*7aQFG zn0SSru1cG>YeuO$U{ciKB$qQQ;TZPbAPmNTf*NKQWJ9Bv(Rw*Kts^q%o>RgwX^!*) z^%YXTl!$R!uU&v*0I$^HePsha>ZUUfu0$*sF;0!4PjWkSZJhUUEg1@rbl)|ym%#+qOr=~12;tpdXV`WLF zmNpH!BW>S6C}n1j=aL}}#j&twLlCH1i~y3f0EsU3r86G#qZt&^=N=RGPiFK!d#DK^ z9@$5^cDJvZec7l-Wt7k!y-C~WGU$EB(vq)H$Ht5IL)mQktIEmd3lM&PZfXuw0lSY! z79Dxc=RC7RJPuyv6IK*H_O$c1SA`l@fg~#s&k;0Z4YyVI%dG!HL6FT!42tgW#eO^* z9C%gqpn~6INLTFX_+ZcS$}~gc-!d@`0H!tuq-cqQq21 z1(c8~fB*_5qJ-oFcy=f{+m93-rsw4DVsQ?pi3b0j)CHz=-pRs#Kf-`X18~jYfymp# z02>|op3DP4S%EyYy90dG@9Y5F0Lkx~5-iB`1H1t7w*f#OeoGUAt)<*@-(Ju$?7SQG z*>vk&(S6^=MS?}^z2MHaLd_%w2)DkEM>}ygYxnhmEZ9%yix&vaxTLX$Tt^eac$O(_ z33Lu08&$7WD;Z++d;wZdPbT{mc77O_N$py4=wa&^S}l=Ti`8|5fIJH;W3I(!HZ>!d z#w{z!Hi5+t_d;6za%=78=RNOwq~>Qf4r5&HytqWV^*a|gqRSWA8>H}vYY9IF)w0O; z;<`Sdt7;6~!0EiLH}>*@m^O#ghg-u5BzZ>}RQu?M+&XaC>!#%6*^J-^GgBu{CPaPB zwtF;bZa0;!o?0n2W^%A)27b9LC7YXe9@iJ2Lby!NGkWC%R+P7&!&_kMfE#s0mz zZ^z~O9U8OW^wCzhji4P;9#`sq zRwk!5Ju3!a#`g_?ONzww0GLhy(+*&Yp@)8N?t(#6027ew_rG|tz?2#h-;)Z%UY#Im z?vo@F8(fdft|$ubzw<$?*~$c&Qldj>9m9Eu)K9Hrm}MfpY)Mt>iS>glv`C3-C`qpz z@U?<;FJfIU(W@- z@2|ZC8Jr&_Cuq8==;1+Tjo+6&o?iC}bz#%L(?t)Sq%A<^pR)w5usM%_JI$)EAVly) zEg+4nElO&|qeNlL-u?Pp}A3l8fz5oCK literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Threading.Tasks.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Threading.Tasks.xml new file mode 100644 index 000000000..6c770122e --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/System.Threading.Tasks.xml @@ -0,0 +1,8969 @@ + + + + System.Threading.Tasks + + + + Represents one or more errors that occur during application execution. + + is used to consolidate multiple failures into a single, throwable + exception object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with + a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error + message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + The argument + is null. + + + + Initializes a new instance of the class with + references to the inner exceptions that are the cause of this exception. + + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with + references to the inner exceptions that are the cause of this exception. + + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with a specified error + message and references to the inner exceptions that are the cause of this exception. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with a specified error + message and references to the inner exceptions that are the cause of this exception. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Allocates a new aggregate exception with the specified message and list of inner exceptions. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Returns the that is the root cause of this exception. + + + + + Invokes a handler on each contained by this . + + The predicate to execute for each exception. The predicate accepts as an + argument the to be processed and returns a Boolean to indicate + whether the exception was handled. + + Each invocation of the returns true or false to indicate whether the + was handled. After all invocations, if any exceptions went + unhandled, all unhandled exceptions will be put into a new + which will be thrown. Otherwise, the method simply returns. If any + invocations of the throws an exception, it will halt the processing + of any more exceptions and immediately propagate the thrown exception as-is. + + An exception contained by this was not handled. + The argument is + null. + + + + Flattens an instances into a single, new instance. + + A new, flattened . + + If any inner exceptions are themselves instances of + , this method will recursively flatten all of them. The + inner exceptions returned in the new + will be the union of all of the the inner exceptions from exception tree rooted at the provided + instance. + + + + + Creates and returns a string representation of the current . + + A string representation of the current exception. + + + + Gets a read-only collection of the instances that caused the + current exception. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to One or more errors occurred.. + + + + + Looks up a localized string similar to An element of innerExceptions was null.. + + + + + Looks up a localized string similar to {0}{1}---> (Inner Exception #{2}) {3}{4}{5}. + + + + + Looks up a localized string similar to No tokens were supplied.. + + + + + Looks up a localized string similar to The CancellationTokenSource associated with this CancellationToken has been disposed.. + + + + + Looks up a localized string similar to The CancellationTokenSource has been disposed.. + + + + + Looks up a localized string similar to The SyncRoot property may not be used for the synchronization of concurrent collections.. + + + + + Looks up a localized string similar to The array is multidimensional, or the type parameter for the set cannot be cast automatically to the type of the destination array.. + + + + + Looks up a localized string similar to The index is equal to or greater than the length of the array, or the number of elements in the dictionary is greater than the available space from index to the end of the destination array.. + + + + + Looks up a localized string similar to The capacity argument must be greater than or equal to zero.. + + + + + Looks up a localized string similar to The concurrencyLevel argument must be positive.. + + + + + Looks up a localized string similar to The index argument is less than zero.. + + + + + Looks up a localized string similar to TKey is a reference type and item.Key is null.. + + + + + Looks up a localized string similar to The key already existed in the dictionary.. + + + + + Looks up a localized string similar to The source argument contains duplicate keys.. + + + + + Looks up a localized string similar to The key was of an incorrect type for this dictionary.. + + + + + Looks up a localized string similar to The value was of an incorrect type for this dictionary.. + + + + + Looks up a localized string similar to The lazily-initialized type does not have a public, parameterless constructor.. + + + + + Looks up a localized string similar to ValueFactory returned null.. + + + + + Looks up a localized string similar to The spinCount argument must be in the range 0 to {0}, inclusive.. + + + + + Looks up a localized string similar to There are too many threads currently waiting on the event. A maximum of {0} waiting threads are supported.. + + + + + Looks up a localized string similar to The event has been disposed.. + + + + + Looks up a localized string similar to The operation was canceled.. + + + + + Looks up a localized string similar to The condition argument is null.. + + + + + Looks up a localized string similar to The timeout must represent a value between -1 and Int32.MaxValue, inclusive.. + + + + + Looks up a localized string similar to The specified TaskContinuationOptions combined LongRunning and ExecuteSynchronously. Synchronous continuations should not be long running.. + + + + + Looks up a localized string similar to The specified TaskContinuationOptions excluded all continuation kinds.. + + + + + Looks up a localized string similar to (Internal)An attempt was made to create a LongRunning SelfReplicating task.. + + + + + Looks up a localized string similar to The value needs to translate in milliseconds to -1 (signifying an infinite timeout), 0 or a positive integer less than or equal to Int32.MaxValue.. + + + + + Looks up a localized string similar to The value needs to be either -1 (signifying an infinite timeout), 0 or a positive integer.. + + + + + Looks up a localized string similar to A task may only be disposed if it is in a completion state (RanToCompletion, Faulted or Canceled).. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.LongRunning in calls to FromAsync.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.PreferFairness in calls to FromAsync.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.SelfReplicating in calls to FromAsync.. + + + + + Looks up a localized string similar to FromAsync was called with a TaskManager that had already shut down.. + + + + + Looks up a localized string similar to The tasks argument contains no tasks.. + + + + + Looks up a localized string similar to It is invalid to exclude specific continuation kinds for continuations off of multiple tasks.. + + + + + Looks up a localized string similar to The tasks argument included a null value.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task that was already started.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a continuation task.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task not bound to a delegate, such as the task returned from an asynchronous method.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task that has already completed.. + + + + + Looks up a localized string similar to Start may not be called on a task that was already started.. + + + + + Looks up a localized string similar to Start may not be called on a continuation task.. + + + + + Looks up a localized string similar to Start may not be called on a task with null action.. + + + + + Looks up a localized string similar to Start may not be called on a promise-style task.. + + + + + Looks up a localized string similar to Start may not be called on a task that has completed.. + + + + + Looks up a localized string similar to The task has been disposed.. + + + + + Looks up a localized string similar to The tasks array included at least one null element.. + + + + + Looks up a localized string similar to The awaited task has not yet completed.. + + + + + Looks up a localized string similar to A task was canceled.. + + + + + Looks up a localized string similar to The exceptions collection was empty.. + + + + + Looks up a localized string similar to The exceptions collection included at least one null element.. + + + + + Looks up a localized string similar to A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.. + + + + + Looks up a localized string similar to (Internal)Expected an Exception or an IEnumerable<Exception>. + + + + + Looks up a localized string similar to ExecuteTask may not be called for a task which was already executed.. + + + + + Looks up a localized string similar to ExecuteTask may not be called for a task which was previously queued to a different TaskScheduler.. + + + + + Looks up a localized string similar to The current SynchronizationContext may not be used as a TaskScheduler.. + + + + + Looks up a localized string similar to The TryExecuteTaskInline call to the underlying scheduler succeeded, but the task body was not invoked.. + + + + + Looks up a localized string similar to An exception was thrown by a TaskScheduler.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.SelfReplicating for a Task<TResult>.. + + + + + Looks up a localized string similar to {Not yet computed}. + + + + + Looks up a localized string similar to A task's Exception may only be set directly if the task was created without a function.. + + + + + Looks up a localized string similar to An attempt was made to transition a task to a final state when it had already completed.. + + + + + Represents a thread-safe collection of keys and values. + + The type of the keys in the dictionary. + The type of the values in the dictionary. + + All public and protected members of are thread-safe and may be used + concurrently from multiple threads. + + + + + Initializes a new instance of the + class that is empty, has the default concurrency level, has the default initial capacity, and + uses the default comparer for the key type. + + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level and capacity, and uses the default + comparer for the key type. + + The estimated number of threads that will update the + concurrently. + The initial number of elements that the + can contain. + is + less than 1. + is less than + 0. + + + + Initializes a new instance of the + class that contains elements copied from the specified , has the default concurrency + level, has the default initial capacity, and uses the default comparer for the key type. + + The whose elements are copied to + the new + . + is a null reference + (Nothing in Visual Basic). + contains one or more + duplicate keys. + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level and capacity, and uses the specified + . + + The + implementation to use when comparing keys. + is a null reference + (Nothing in Visual Basic). + + + + Initializes a new instance of the + class that contains elements copied from the specified , has the default concurrency level, has the default + initial capacity, and uses the specified + . + + The whose elements are copied to + the new + . + The + implementation to use when comparing keys. + is a null reference + (Nothing in Visual Basic). -or- + is a null reference (Nothing in Visual Basic). + + + + + Initializes a new instance of the + class that contains elements copied from the specified , + has the specified concurrency level, has the specified initial capacity, and uses the specified + . + + The estimated number of threads that will update the + concurrently. + The whose elements are copied to the new + . + The implementation to use + when comparing keys. + + is a null reference (Nothing in Visual Basic). + -or- + is a null reference (Nothing in Visual Basic). + + + is less than 1. + + contains one or more duplicate keys. + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level, has the specified initial capacity, and + uses the specified . + + The estimated number of threads that will update the + concurrently. + The initial number of elements that the + can contain. + The + implementation to use when comparing keys. + + is less than 1. -or- + is less than 0. + + is a null reference + (Nothing in Visual Basic). + + + + Attempts to add the specified key and value to the . + + The key of the element to add. + The value of the element to add. The value can be a null reference (Nothing + in Visual Basic) for reference types. + true if the key/value pair was added to the + successfully; otherwise, false. + is null reference + (Nothing in Visual Basic). + The + contains too many elements. + + + + Determines whether the contains the specified + key. + + The key to locate in the . + true if the contains an element with + the specified key; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Attempts to remove and return the the value with the specified key from the + . + + The key of the element to remove and return. + When this method returns, contains the object removed from the + or the default value of + if the operation failed. + true if an object was removed successfully; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Removes the specified key from the dictionary if it exists and returns its associated value. + If matchValue flag is set, the key will be removed only if is associated with a particular + value. + + The key to search for and remove if it exists. + The variable into which the removed value, if found, is stored. + Whether removal of the key is conditional on its value. + The conditional value to compare against if is true + + + + + Attempts to get the value associated with the specified key from the . + + The key of the value to get. + When this method returns, contains the object from + the + with the spedified key or the default value of + , if the operation failed. + true if the key was found in the ; + otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Compares the existing value for the specified key with a specified value, and if they’re equal, + updates the key with a third value. + + The key whose value is compared with and + possibly replaced. + The value that replaces the value of the element with if the comparison results in equality. + The value that is compared to the value of the element with + . + true if the value with was equal to and replaced with ; otherwise, + false. + is a null + reference. + + + + Removes all keys and values from the . + + + + + Copies the elements of the to an array of + type , starting at the + specified array index. + + The one-dimensional array of type + that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying + begins. + is a null reference + (Nothing in Visual Basic). + is less than + 0. + is equal to or greater than + the length of the . -or- The number of elements in the source + is greater than the available space from to the end of the destination + . + + + + Copies the key and value pairs stored in the to a + new array. + + A new array containing a snapshot of key and value pairs copied from the . + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToPairs. + + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToEntries. + + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToObjects. + + + + Returns an enumerator that iterates through the . + An enumerator for the . + + The enumerator returned from the dictionary is safe to use concurrently with + reads and writes to the dictionary, however it does not represent a moment-in-time snapshot + of the dictionary. The contents exposed through the enumerator may contain modifications + made to the dictionary after was called. + + + + + Shared internal implementation for inserts and updates. + If key exists, we always return false; and if updateIfExists == true we force update with value; + If key doesn't exist, we always add value and return true; + + + + + Adds a key/value pair to the + if the key does not already exist. + + The key of the element to add. + The function used to generate a value for the key + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The value for the key. This will be either the existing value for the key if the + key is already in the dictionary, or the new value for the key as returned by valueFactory + if the key was not in the dictionary. + + + + Adds a key/value pair to the + if the key does not already exist. + + The key of the element to add. + the value to be added, if the key does not already exist + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The value for the key. This will be either the existing value for the key if the + key is already in the dictionary, or the new value if the key was not in the dictionary. + + + + Adds a key/value pair to the if the key does not already + exist, or updates a key/value pair in the if the key + already exists. + + The key to be added or whose value should be updated + The function used to generate a value for an absent key + The function used to generate a new value for an existing key + based on the key's existing value + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The new value for the key. This will be either be the result of addValueFactory (if the key was + absent) or the result of updateValueFactory (if the key was present). + + + + Adds a key/value pair to the if the key does not already + exist, or updates a key/value pair in the if the key + already exists. + + The key to be added or whose value should be updated + The value to be added for an absent key + The function used to generate a new value for an existing key based on + the key's existing value + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The new value for the key. This will be either be the result of addValueFactory (if the key was + absent) or the result of updateValueFactory (if the key was present). + + + + Adds the specified key and value to the . + + The object to use as the key of the element to add. + The object to use as the value of the element to add. + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + + An element with the same key already exists in the . + + + + Removes the element with the specified key from the . + + The key of the element to remove. + true if the element is successfully remove; otherwise false. This method also returns + false if + was not found in the original . + + is a null reference + (Nothing in Visual Basic). + + + + Adds the specified value to the + with the specified key. + + The + structure representing the key and value to add to the . + The of is null. + The + contains too many elements. + An element with the same key already exists in the + + + + + Determines whether the + contains a specific key and value. + + The + structure to locate in the . + true if the is found in the ; otherwise, false. + + + + Removes a key and value from the dictionary. + + The + structure representing the key and value to remove from the . + true if the key and value represented by is successfully + found and removed; otherwise, false. + The Key property of is a null reference (Nothing in Visual Basic). + + + Returns an enumerator that iterates through the . + An enumerator for the . + + The enumerator returned from the dictionary is safe to use concurrently with + reads and writes to the dictionary, however it does not represent a moment-in-time snapshot + of the dictionary. The contents exposed through the enumerator may contain modifications + made to the dictionary after was called. + + + + + Adds the specified key and value to the dictionary. + + The object to use as the key. + The object to use as the value. + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + + is of a type that is not assignable to the key type of the . -or- + is of a type that is not assignable to , + the type of values in the . + -or- A value with the same key already exists in the . + + + + + Gets whether the contains an + element with the specified key. + + The key to locate in the . + true if the contains + an element with the specified key; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + Provides an for the + . + An for the . + + + + Removes the element with the specified key from the . + + The key of the element to remove. + is a null reference + (Nothing in Visual Basic). + + + + Copies the elements of the to an array, starting + at the specified array index. + + The one-dimensional array that is the destination of the elements copied from + the . The array must have zero-based + indexing. + The zero-based index in at which copying + begins. + is a null reference + (Nothing in Visual Basic). + is less than + 0. + is equal to or greater than + the length of the . -or- The number of elements in the source + is greater than the available space from to the end of the destination + . + + + + Replaces the internal table with a larger one. To prevent multiple threads from resizing the + table as a result of races, the table of buckets that was deemed too small is passed in as + an argument to GrowTable(). GrowTable() obtains a lock, and then checks whether the bucket + table has been replaced in the meantime or not. + + Reference to the bucket table that was deemed too small. + + + + Computes the bucket and lock number for a particular key. + + + + + Acquires all locks for this hash table, and increments locksAcquired by the number + of locks that were successfully acquired. The locks are acquired in an increasing + order. + + + + + Acquires a contiguous range of locks for this hash table, and increments locksAcquired + by the number of locks that were successfully acquired. The locks are acquired in an + increasing order. + + + + + Releases a contiguous range of locks. + + + + + Gets a collection containing the keys in the dictionary. + + + + + Gets a collection containing the values in the dictionary. + + + + + A helper method for asserts. + + + + + Get the data array to be serialized + + + + + Construct the dictionary from a previously seiralized one + + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The value associated with the specified key. If the specified key is not found, a get + operation throws a + , and a set operation creates a new + element with the specified key. + is a null reference + (Nothing in Visual Basic). + The property is retrieved and + + does not exist in the collection. + + + + Gets the number of key/value pairs contained in the . + + The dictionary contains too many + elements. + The number of key/value paris contained in the . + Count has snapshot semantics and represents the number of items in the + at the moment when Count was accessed. + + + + Gets a value that indicates whether the is empty. + + true if the is empty; otherwise, + false. + + + + Gets a collection containing the keys in the . + + An containing the keys in the + . + + + + Gets a collection containing the values in the . + + An containing the values in + the + . + + + + Gets a value indicating whether the dictionary is read-only. + + true if the is + read-only; otherwise, false. For , this property always returns + false. + + + + Gets a value indicating whether the has a fixed size. + + true if the has a + fixed size; otherwise, false. For , this property always + returns false. + + + + Gets a value indicating whether the is read-only. + + true if the is + read-only; otherwise, false. For , this property always + returns false. + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + + Gets an containing the values in the . + + An containing the values in the . + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The value associated with the specified key, or a null reference (Nothing in Visual Basic) + if is not in the dictionary or is of a type that is + not assignable to the key type of the . + is a null reference + (Nothing in Visual Basic). + + A value is being assigned, and is of a type that is not assignable to the + key type of the . -or- A value is being + assigned, and is of a type that is not assignable to the value type + of the + + + + + Gets a value indicating whether access to the is + synchronized with the SyncRoot. + + true if access to the is synchronized + (thread safe); otherwise, false. For , this property always + returns false. + + + + Gets an object that can be used to synchronize access to the . This property is not supported. + + The SyncRoot property is not supported. + + + + The number of concurrent writes for which to optimize by default. + + + + + A node in a singly-linked list representing a particular hash table bucket. + + + + + A private class to represent enumeration over the dictionary that implements the + IDictionaryEnumerator interface. + + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + Represents an asynchronous method builder. + + + A cached VoidTaskResult task used for builders that complete synchronously. + + + The generic builder object to which this non-generic instance delegates. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state. + + The builder is not initialized. + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + + Gets the for this builder. + The representing the builder's asynchronous operation. + The builder is not initialized. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + Holds state related to the builder's IAsyncStateMachine. + This is a mutable struct. Be very delicate with it. + + + A reference to the heap-allocated state machine object associated with this builder. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument is null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + + Gets the Action to use with an awaiter's OnCompleted or UnsafeOnCompleted method. + On first invocation, the supplied state machine will be boxed. + + Specifies the type of the method builder used. + Specifies the type of the state machine used. + The builder. + The state machine. + An Action to provide to the awaiter. + + + Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext. + + + The context with which to run MoveNext. + + + The state machine whose MoveNext method should be invoked. + + + Initializes the runner. + The context with which to run MoveNext. + + + Invokes MoveNext under the provided context. + + + Cached delegate used with ExecutionContext.Run. + + + Invokes the MoveNext method on the supplied IAsyncStateMachine. + The IAsyncStateMachine machine instance. + + + + Provides a builder for asynchronous methods that return void. + This type is intended for compiler use only. + + + + The synchronization context associated with this operation. + + + State related to the IAsyncStateMachine. + + + An object used by the debugger to uniquely identify this builder. Lazily initialized. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Registers with UnobservedTaskException to suppress exception crashing. + + + Non-zero if PreventUnobservedTaskExceptions has already been invoked. + + + Initializes a new . + The initialized . + + + Initializes the . + The synchronizationContext associated with this operation. This may be null. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument was null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + Completes the method builder successfully. + + + Faults the method builder with an exception. + The exception that is the cause of this fault. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + + + Notifies the current synchronization context that the operation completed. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger and only in a single-threaded manner. + + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder{TResult} is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + A cached task for default(TResult). + + + State related to the IAsyncStateMachine. + + + The lazily-initialized task. + Must be named m_task for debugger step-over to work correctly. + + + The lazily-initialized task completion source. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state with the specified result. + + The result to use to complete the task. + The task has already completed. + + + + Completes the builder by using either the supplied completed task, or by completing + the builder's previously accessed task using default(TResult). + + A task already completed with the value default(TResult). + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + This should only be invoked from within an asynchronous method, + and only by the debugger. + + + + + Gets a task for the specified result. This will either + be a cached or new task, never null. + + The result for which we need a task. + The completed task containing the result. + + + Gets the lazily-initialized TaskCompletionSource. + + + Gets the for this builder. + The representing the builder's asynchronous operation. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + Provides a base class used to cache tasks of a specific return type. + Specifies the type of results the cached tasks return. + + + + A singleton cache for this result type. + This may be null if there are no cached tasks for this TResult. + + + + Creates a non-disposable task. + The result for the task. + The cacheable task. + + + Creates a cache. + A task cache for this result type. + + + Gets a cached task if one exists. + The result for which we want a cached task. + A cached task if one exists; otherwise, null. + + + Provides a cache for Boolean tasks. + + + A true task. + + + A false task. + + + Gets a cached task for the Boolean result. + true or false + A cached task for the Boolean result. + + + Provides a cache for zero Int32 tasks. + + + The minimum value, inclusive, for which we want a cached task. + + + The maximum value, exclusive, for which we want a cached task. + + + The cache of Task{Int32}. + + + Creates an array of cached tasks for the values in the range [INCLUSIVE_MIN,EXCLUSIVE_MAX). + + + Gets a cached task for the zero Int32 result. + The integer value + A cached task for the Int32 result or null if not cached. + + + + Represents state machines generated for asynchronous methods. + This type is intended for compiler use only. + + + + Moves the state machine to its next state. + + + Configures the state machine with a heap-allocated replica. + The heap-allocated replica. + + + + Represents an awaiter used to schedule continuations when an await operation completes. + + + + + Represents an operation that will schedule continuations when the operation completes. + + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + Unlike OnCompleted, UnsafeOnCompleted need not propagate ExecutionContext information. + + + Used with Task(of void) + + + + An interface similar to the one added in .NET 4.0. + + + + The exception that is thrown in a thread upon cancellation of an operation that the thread was executing. + + + Initializes the exception. + + + Initializes the exception. + The error message that explains the reason for the exception. + + + Initializes the exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + Initializes the exception. + A cancellation token associated with the operation that was canceled. + + + Initializes the exception. + The error message that explains the reason for the exception. + A cancellation token associated with the operation that was canceled. + + + Initializes the exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + A cancellation token associated with the operation that was canceled. + + + Gets a token associated with the operation that was canceled. + + + + A dummy replacement for the .NET internal class StackCrawlMark. + + + + + Propogates notification that operations should be canceled. + + + + A may be created directly in an unchangeable canceled or non-canceled state + using the CancellationToken's constructors. However, to have a CancellationToken that can change + from a non-canceled to a canceled state, + CancellationTokenSource must be used. + CancellationTokenSource exposes the associated CancellationToken that may be canceled by the source through its + Token property. + + + Once canceled, a token may not transition to a non-canceled state, and a token whose + is false will never change to one that can be canceled. + + + All members of this struct are thread-safe and may be used concurrently from multiple threads. + + + + + + Internal constructor only a CancellationTokenSource should create a CancellationToken + + + + + Initializes the CancellationToken. + + + The canceled state for the token. + + + Tokens created with this constructor will remain in the canceled state specified + by the parameter. If is false, + both and will be false. + If is true, + both and will be true. + + + + + Registers a delegate that will be called when this CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + A Boolean value that indicates whether to capture + the current SynchronizationContext and use it + when invoking the . + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The state to pass to the when the delegate is invoked. This may be null. + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The state to pass to the when the delegate is invoked. This may be null. + A Boolean value that indicates whether to capture + the current SynchronizationContext and use it + when invoking the . + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Determines whether the current CancellationToken instance is equal to the + specified token. + + The other CancellationToken to which to compare this + instance. + True if the instances are equal; otherwise, false. Two tokens are equal if they are associated + with the same CancellationTokenSource or if they were both constructed + from public CancellationToken constructors and their values are equal. + + + + Determines whether the current CancellationToken instance is equal to the + specified . + + The other object to which to compare this instance. + True if is a CancellationToken + and if the two instances are equal; otherwise, false. Two tokens are equal if they are associated + with the same CancellationTokenSource or if they were both constructed + from public CancellationToken constructors and their values are equal. + An associated CancellationTokenSource has been disposed. + + + + Serves as a hash function for a CancellationToken. + + A hash code for the current CancellationToken instance. + + + + Determines whether two CancellationToken instances are equal. + + The first instance. + The second instance. + True if the instances are equal; otherwise, false. + An associated CancellationTokenSource has been disposed. + + + + Determines whether two CancellationToken instances are not equal. + + The first instance. + The second instance. + True if the instances are not equal; otherwise, false. + An associated CancellationTokenSource has been disposed. + + + + Throws a OperationCanceledException if + this token has had cancellation requested. + + + This method provides functionality equivalent to: + + if (token.IsCancellationRequested) + throw new OperationCanceledException(token); + + + The token has had cancellation requested. + The associated CancellationTokenSource has been disposed. + + + + Returns an empty CancellationToken value. + + + The value returned by this property will be non-cancelable by default. + + + + + Gets whether cancellation has been requested for this token. + + Whether cancellation has been requested for this token. + + + This property indicates whether cancellation has been requested for this token, + either through the token initially being construted in a canceled state, or through + calling Cancel + on the token's associated . + + + If this property is true, it only guarantees that cancellation has been requested. + It does not guarantee that every registered handler + has finished executing, nor that cancellation requests have finished propagating + to all registered handlers. Additional synchronization may be required, + particularly in situations where related objects are being canceled concurrently. + + + + + + Gets whether this token is capable of being in the canceled state. + + + If CanBeCanceled returns false, it is guaranteed that the token will never transition + into a canceled state, meaning that will never + return true. + + + + + Gets a that is signaled when the token is canceled. + + Accessing this property causes a WaitHandle + to be instantiated. It is preferable to only use this property when necessary, and to then + dispose the associated instance at the earliest opportunity (disposing + the source will dispose of this allocated handle). The handle should not be closed or disposed directly. + + The associated CancellationTokenSource has been disposed. + + + + Represents a callback delegate that has been registered with a CancellationToken. + + + To unregister a callback, dispose the corresponding Registration instance. + + + + + Attempts to deregister the item. If it's already being run, this may fail. + Entails a full memory fence. + + True if the callback was found and deregistered, false otherwise. + + + + Disposes of the registration and unregisters the target callback from the associated + CancellationToken. + If the target callback is currently executing this method will wait until it completes, except + in the degenerate cases where a callback method deregisters itself. + + + + + Determines whether two CancellationTokenRegistration + instances are equal. + + The first instance. + The second instance. + True if the instances are equal; otherwise, false. + + + + Determines whether two CancellationTokenRegistration instances are not equal. + + The first instance. + The second instance. + True if the instances are not equal; otherwise, false. + + + + Determines whether the current CancellationTokenRegistration instance is equal to the + specified . + + The other object to which to compare this instance. + True, if both this and are equal. False, otherwise. + Two CancellationTokenRegistration instances are equal if + they both refer to the output of a single call to the same Register method of a + CancellationToken. + + + + + Determines whether the current CancellationToken instance is equal to the + specified . + + The other CancellationTokenRegistration to which to compare this instance. + True, if both this and are equal. False, otherwise. + Two CancellationTokenRegistration instances are equal if + they both refer to the output of a single call to the same Register method of a + CancellationToken. + + + + + Serves as a hash function for a CancellationTokenRegistration.. + + A hash code for the current CancellationTokenRegistration instance. + + + + Signals to a that it should be canceled. + + + + is used to instantiate a + (via the source's Token property) + that can be handed to operations that wish to be notified of cancellation or that can be used to + register asynchronous operations for cancellation. That token may have cancellation requested by + calling to the source's Cancel + method. + + + All members of this class, except Dispose, are thread-safe and may be used + concurrently from multiple threads. + + + + + The ID of the thread currently executing the main body of CTS.Cancel() + this helps us to know if a call to ctr.Dispose() is running 'within' a cancellation callback. + This is updated as we move between the main thread calling cts.Cancel() and any syncContexts that are used to + actually run the callbacks. + + + + Initializes the . + + + + + Communicates a request for cancellation. + + + + The associated will be + notified of the cancellation and will transition to a state where + IsCancellationRequested returns true. + Any callbacks or cancelable operations + registered with the will be executed. + + + Cancelable operations and callbacks registered with the token should not throw exceptions. + However, this overload of Cancel will aggregate any exceptions thrown into a , + such that one callback throwing an exception will not prevent other registered callbacks from being executed. + + + The that was captured when each callback was registered + will be reestablished when the callback is invoked. + + + An aggregate exception containing all the exceptions thrown + by the registered callbacks on the associated . + This has been disposed. + + + + Communicates a request for cancellation. + + + + The associated will be + notified of the cancellation and will transition to a state where + IsCancellationRequested returns true. + Any callbacks or cancelable operations + registered with the will be executed. + + + Cancelable operations and callbacks registered with the token should not throw exceptions. + If is true, an exception will immediately propagate out of the + call to Cancel, preventing the remaining callbacks and cancelable operations from being processed. + If is false, this overload will aggregate any + exceptions thrown into a , + such that one callback throwing an exception will not prevent other registered callbacks from being executed. + + + The that was captured when each callback was registered + will be reestablished when the callback is invoked. + + + Specifies whether exceptions should immediately propagate. + An aggregate exception containing all the exceptions thrown + by the registered callbacks on the associated . + This has been disposed. + + + + Releases the resources used by this . + + + This method is not thread-safe for any other concurrent calls. + + + + + Throws an exception if the source has been disposed. + + + + + InternalGetStaticSource() + + Whether the source should be set. + A static source to be shared among multiple tokens. + + + + Registers a callback object. If cancellation has already occurred, the + callback will have been run by the time this method returns. + + + + + + + + + + Invoke the Canceled event. + + + The handlers are invoked synchronously in LIFO order. + + + + + Creates a CancellationTokenSource that will be in the canceled state + when any of the source tokens are in the canceled state. + + The first CancellationToken to observe. + The second CancellationToken to observe. + A CancellationTokenSource that is linked + to the source tokens. + A CancellationTokenSource associated with + one of the source tokens has been disposed. + + + + Creates a CancellationTokenSource that will be in the canceled state + when any of the source tokens are in the canceled state. + + The CancellationToken instances to observe. + A CancellationTokenSource that is linked + to the source tokens. + is null. + A CancellationTokenSource associated with + one of the source tokens has been disposed. + + + + Gets whether cancellation has been requested for this CancellationTokenSource. + + Whether cancellation has been requested for this CancellationTokenSource. + + + This property indicates whether cancellation has been requested for this token source, such as + due to a call to its + Cancel method. + + + If this property returns true, it only guarantees that cancellation has been requested. It does not + guarantee that every handler registered with the corresponding token has finished executing, nor + that cancellation requests have finished propagating to all registered handlers. Additional + synchronization may be required, particularly in situations where related objects are being + canceled concurrently. + + + + + + A simple helper to determine whether cancellation has finished. + + + + + A simple helper to determine whether disposal has occured. + + + + + The ID of the thread that is running callbacks. + + + + + Gets the CancellationToken + associated with this . + + The CancellationToken + associated with this . + The token source has been + disposed. + + + + + + + + + + + + + + The currently executing callback + + + + + A helper class for collating the various bits of information required to execute + cancellation callbacks. + + + + + InternalExecuteCallbackSynchronously_GeneralPath + This will be called on the target synchronization context, however, we still need to restore the required execution context + + + + + A sparsely populated array. Elements can be sparse and some null, but this allows for + lock-free additions and growth, and also for constant time removal (by nulling out). + + The kind of elements contained within. + + + + Allocates a new array with the given initial size. + + How many array slots to pre-allocate. + + + + Adds an element in the first available slot, beginning the search from the tail-to-head. + If no slots are available, the array is grown. The method doesn't return until successful. + + The element to add. + Information about where the add happened, to enable O(1) deregistration. + + + + The tail of the doubly linked list. + + + + + A struct to hold a link to the exact spot in an array an element was inserted, enabling + constant time removal later on. + + + + + A fragment of a sparsely populated array, doubly linked. + + The kind of elements contained within. + + + + Provides lazy initialization routines. + + + These routines avoid needing to allocate a dedicated, lazy-initialization instance, instead using + references to ensure targets have been initialized as they are accessed. + + + + + Initializes a target reference type with the type's default constructor if the target has not + already been initialized. + + The refence type of the reference to be initialized. + A reference of type to initialize if it has not + already been initialized. + The initialized reference of type . + Type does not have a default + constructor. + + Permissions to access the constructor of type were missing. + + + + This method may only be used on reference types. To ensure initialization of value + types, see other overloads of EnsureInitialized. + + + This method may be used concurrently by multiple threads to initialize . + In the event that multiple threads access this method concurrently, multiple instances of + may be created, but only one will be stored into . In such an occurrence, this method will not dispose of the + objects that were not stored. If such objects must be disposed, it is up to the caller to determine + if an object was not used and to then dispose of the object appropriately. + + + + + + Initializes a target reference type using the specified function if it has not already been + initialized. + + The reference type of the reference to be initialized. + The reference of type to initialize if it has not + already been initialized. + The invoked to initialize the + reference. + The initialized reference of type . + Type does not have a + default constructor. + returned + null. + + + This method may only be used on reference types, and may + not return a null reference (Nothing in Visual Basic). To ensure initialization of value types or + to allow null reference types, see other overloads of EnsureInitialized. + + + This method may be used concurrently by multiple threads to initialize . + In the event that multiple threads access this method concurrently, multiple instances of + may be created, but only one will be stored into . In such an occurrence, this method will not dispose of the + objects that were not stored. If such objects must be disposed, it is up to the caller to determine + if an object was not used and to then dispose of the object appropriately. + + + + + + Initialize the target using the given delegate (slow path). + + The reference type of the reference to be initialized. + The variable that need to be initialized + The delegate that will be executed to initialize the target + The initialized variable + + + + Initializes a target reference or value type with its default constructor if it has not already + been initialized. + + The type of the reference to be initialized. + A reference or value of type to initialize if it + has not already been initialized. + A reference to a boolean that determines whether the target has already + been initialized. + A reference to an object used as the mutually exclusive lock for initializing + . + The initialized value of type . + + + + Initializes a target reference or value type with a specified function if it has not already been + initialized. + + The type of the reference to be initialized. + A reference or value of type to initialize if it + has not already been initialized. + A reference to a boolean that determines whether the target has already + been initialized. + A reference to an object used as the mutually exclusive lock for initializing + . + The invoked to initialize the + reference or value. + The initialized value of type . + + + + Ensure the target is initialized and return the value (slow path). This overload permits nulls + and also works for value type targets. Uses the supplied function to create the value. + + The type of target. + A reference to the target to be initialized. + A reference to a location tracking whether the target has been initialized. + A reference to a location containing a mutual exclusive lock. + + The to invoke in order to produce the lazily-initialized value. + + The initialized object. + + + + Provides a slimmed down version of . + + + All public and protected members of are thread-safe and may be used + concurrently from multiple threads, with the exception of Dispose, which + must only be used when all other operations on the have + completed, and Reset, which should only be used when no other threads are + accessing the event. + + + + + Initializes a new instance of the + class with an initial state of nonsignaled. + + + + + Initializes a new instance of the + class with a Boolen value indicating whether to set the intial state to signaled. + + true to set the initial state signaled; false to set the initial state + to nonsignaled. + + + + Initializes a new instance of the + class with a Boolen value indicating whether to set the intial state to signaled and a specified + spin count. + + true to set the initial state to signaled; false to set the initial state + to nonsignaled. + The number of spin waits that will occur before falling back to a true + wait. + is less than + 0 or greater than the maximum allowed value. + + + + Initializes the internal state of the event. + + Whether the event is set initially or not. + The spin count that decides when the event will block. + + + + Helper to ensure the lock object is created before first use. + + + + + This method lazily initializes the event object. It uses CAS to guarantee that + many threads racing to call this at once don't result in more than one event + being stored and used. The event will be signaled or unsignaled depending on + the state of the thin-event itself, with synchronization taken into account. + + True if a new event was created and stored, false otherwise. + + + + Sets the state of the event to signaled, which allows one or more threads waiting on the event to + proceed. + + + + + Private helper to actually perform the Set. + + Indicates whether we are calling Set() during cancellation. + The object has been canceled. + + + + Sets the state of the event to nonsignaled, which causes threads to block. + + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + Blocks the current thread until the current is set. + + + The maximum number of waiters has been exceeded. + + + The caller of this method blocks indefinitely until the current instance is set. The caller will + return immediately if the event is currently in a set state. + + + + + Blocks the current thread until the current receives a signal, + while observing a . + + The to + observe. + + The maximum number of waiters has been exceeded. + + was + canceled. + + The caller of this method blocks indefinitely until the current instance is set. The caller will + return immediately if the event is currently in a set state. + + + + + Blocks the current thread until the current is set, using a + to measure the time interval. + + A that represents the number of milliseconds + to wait, or a that represents -1 milliseconds to wait indefinitely. + + true if the was set; otherwise, + false. + is a negative + number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater + than . + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + to measure the time interval, while observing a . + + A that represents the number of milliseconds + to wait, or a that represents -1 milliseconds to wait indefinitely. + + The to + observe. + true if the was set; otherwise, + false. + is a negative + number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater + than . + was canceled. + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + 32-bit signed integer to measure the time interval. + + The number of milliseconds to wait, or (-1) to wait indefinitely. + true if the was set; otherwise, + false. + is a + negative number other than -1, which represents an infinite time-out. + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + 32-bit signed integer to measure the time interval, while observing a . + + The number of milliseconds to wait, or (-1) to wait indefinitely. + The to + observe. + true if the was set; otherwise, + false. + is a + negative number other than -1, which represents an infinite time-out. + + The maximum number of waiters has been exceeded. + + was canceled. + + + + Releases all resources used by the current instance of . + + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + When overridden in a derived class, releases the unmanaged resources used by the + , and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + Throw ObjectDisposedException if the MRES is disposed + + + + + Private helper method to wake up waiters when a cancellationToken gets canceled. + + + + + Private helper method for updating parts of a bit-string state value. + Mainly called from the IsSet and Waiters properties setters + + + Note: the parameter types must be int as CompareExchange cannot take a Uint + + The new value + The mask used to set the bits + + + + Private helper method - performs Mask and shift, particular helpful to extract a field from a packed word. + eg ExtractStatePortionAndShiftRight(0x12345678, 0xFF000000, 24) => 0x12, ie extracting the top 8-bits as a simple integer + + ?? is there a common place to put this rather than being private to MRES? + + + + + + + + + Performs a Mask operation, but does not perform the shift. + This is acceptable for boolean values for which the shift is unnecessary + eg (val & Mask) != 0 is an appropriate way to extract a boolean rather than using + ((val & Mask) >> shiftAmount) == 1 + + ?? is there a common place to put this rather than being private to MRES? + + + + + + + Helper function to measure and update the wait time + + The first time (in Ticks) observed when the wait started. + The orginal wait timeoutout in milliseconds. + The new wait time in milliseconds, -1 if the time expired, -2 if overflow in counters + has occurred. + + + + Gets the underlying object for this . + + The underlying event object fore this . + + Accessing this property forces initialization of an underlying event object if one hasn't + already been created. To simply wait on this , + the public Wait methods should be preferred. + + + + + Gets whether the event is set. + + true if the event has is set; otherwise, false. + + + + Gets the number of spin waits that will be occur before falling back to a true wait. + + + + + How many threads are waiting. + + + + + Provides support for spin-based waiting. + + + + encapsulates common spinning logic. On single-processor machines, yields are + always used instead of busy waits, and on computers with Intel™ processors employing Hyper-Threading™ + technology, it helps to prevent hardware thread starvation. SpinWait encapsulates a good mixture of + spinning and true yielding. + + + is a value type, which means that low-level code can utilize SpinWait without + fear of unnecessary allocation overheads. SpinWait is not generally useful for ordinary applications. + In most cases, you should use the synchronization classes provided by the .NET Framework, such as + . For most purposes where spin waiting is required, however, + the type should be preferred over the System.Threading.Thread.SpinWait method. + + + While SpinWait is designed to be used in concurrent applications, it is not designed to be + used from multiple threads concurrently. SpinWait's members are not thread-safe. If multiple + threads must spin, each should use its own instance of SpinWait. + + + + + + Performs a single spin. + + + This is typically called in a loop, and may change in behavior based on the number of times a + has been called thus far on this instance. + + + + + Resets the spin counter. + + + This makes and behave as though no calls + to had been issued on this instance. If a instance + is reused many times, it may be useful to reset it to avoid yielding too soon. + + + + + Spins until the specified condition is satisfied. + + A delegate to be executed over and over until it returns true. + The argument is null. + + + + Spins until the specified condition is satisfied or until the specified timeout is expired. + + A delegate to be executed over and over until it returns true. + + A that represents the number of milliseconds to wait, + or a TimeSpan that represents -1 milliseconds to wait indefinitely. + True if the condition is satisfied within the timeout; otherwise, false + The argument is null. + is a negative number + other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than + . + + + + Spins until the specified condition is satisfied or until the specified timeout is expired. + + A delegate to be executed over and over until it returns true. + The number of milliseconds to wait, or (-1) to wait indefinitely. + True if the condition is satisfied within the timeout; otherwise, false + The argument is null. + is a + negative number other than -1, which represents an infinite time-out. + + + + Gets the number of times has been called on this instance. + + + + + Gets whether the next call to will yield the processor, triggering a + forced context switch. + + Whether the next call to will yield the processor, triggering a + forced context switch. + + On a single-CPU machine, always yields the processor. On machines with + multiple CPUs, may yield after an unspecified number of calls. + + + + + A helper class to get the number of preocessors, it updates the numbers of processors every sampling interval + + + + + Gets the number of available processors + + + + + Gets whether the current machine has only a single processor. + + + + + Represents an asynchronous operation that produces a result at some time in the future. + + + The type of the result produced by this . + + + + instances may be created in a variety of ways. The most common approach is by + using the task's property to retrieve a instance that can be used to create tasks for several + purposes. For example, to create a that runs a function, the factory's StartNew + method may be used: + + // C# + var t = Task<int>.Factory.StartNew(() => GenerateResult()); + - or - + var t = Task.Factory.StartNew(() => GenerateResult()); + + ' Visual Basic + Dim t = Task<int>.Factory.StartNew(Function() GenerateResult()) + - or - + Dim t = Task.Factory.StartNew(Function() GenerateResult()) + + + + The class also provides constructors that initialize the task but that do not + schedule it for execution. For performance reasons, the StartNew method should be the + preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation + and scheduling must be separated, the constructors may be used, and the task's + Start + method may then be used to schedule the task for execution at a later time. + + + All members of , except for + Dispose, are thread-safe + and may be used from multiple threads concurrently. + + + + + + Represents an asynchronous operation. + + + + instances may be created in a variety of ways. The most common approach is by + using the Task type's property to retrieve a instance that can be used to create tasks for several + purposes. For example, to create a that runs an action, the factory's StartNew + method may be used: + + // C# + var t = Task.Factory.StartNew(() => DoAction()); + + ' Visual Basic + Dim t = Task.Factory.StartNew(Function() DoAction()) + + + + The class also provides constructors that initialize the Task but that do not + schedule it for execution. For performance reasons, TaskFactory's StartNew method should be the + preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation + and scheduling must be separated, the constructors may be used, and the task's + method may then be used to schedule the task for execution at a later time. + + + All members of , except for , are thread-safe + and may be used from multiple threads concurrently. + + + For operations that return values, the class + should be used. + + + For developers implementing custom debuggers, several internal and private members of Task may be + useful (these may change from release to release). The Int32 m_taskId field serves as the backing + store for the property, however accessing this field directly from a debugger may be + more efficient than accessing the same value through the property's getter method (the + s_taskIdCounter Int32 counter is used to retrieve the next available ID for a Task). Similarly, the + Int32 m_stateFlags field stores information about the current lifecycle stage of the Task, + information also accessible through the property. The m_action System.Object + field stores a reference to the Task's delegate, and the m_stateObject System.Object field stores the + async state passed to the Task by the developer. Finally, for debuggers that parse stack frames, the + InternalWait method serves a potential marker for when a Task is entering a wait operation. + + + + + + A type initializer that runs with the appropriate permissions. + + + + + Initializes a new with the specified action. + + The delegate that represents the code to execute in the Task. + The argument is null. + + + + Initializes a new with the specified action and CancellationToken. + + The delegate that represents the code to execute in the Task. + The CancellationToken + that will be assigned to the new Task. + The argument is null. + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action and creation options. + + The delegate that represents the code to execute in the task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action and creation options. + + The delegate that represents the code to execute in the task. + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action and state. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + + The argument is null. + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + The that will be assigned to the new task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + An internal constructor used by the factory methods on task and its descendent(s). + This variant does not capture the ExecutionContext; it is up to the caller to do that. + + An action to execute. + Optional state to pass to the action. + Parent of Task. + A CancellationToken for the task. + A task scheduler under which the task will run. + Options to control its execution. + Internal options to control its execution + + + + Common logic used by the following internal ctors: + Task() + Task(object action, object state, Task parent, TaskCreationOptions options, TaskScheduler taskScheduler) + + ASSUMES THAT m_creatingTask IS ALREADY SET. + + + Action for task to execute. + Object to which to pass to action (may be null) + Task scheduler on which to run thread (only used by continuation tasks). + A CancellationToken for the Task. + Options to customize behavior of Task. + Internal options to customize behavior of Task. + + + + Checks if we registered a CT callback during construction, and deregisters it. + This should be called when we know the registration isn't useful anymore. Specifically from Finish() if the task has completed + successfully or with an exception. + + + + + Captures the ExecutionContext so long as flow isn't suppressed. + + A stack crawl mark pointing to the frame of the caller. + + + + Internal function that will be called by a new child task to add itself to + the children list of the parent (this). + + Since a child task can only be created from the thread executing the action delegate + of this task, reentrancy is neither required nor supported. This should not be called from + anywhere other than the task construction/initialization codepaths. + + + + + Starts the , scheduling it for execution to the current TaskScheduler. + + + A task may only be started and run only once. Any attempts to schedule a task a second time + will result in an exception. + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Starts the , scheduling it for execution to the specified TaskScheduler. + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + The TaskScheduler with which to associate + and execute this task. + + + The argument is null. + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Runs the synchronously on the current TaskScheduler. + + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + Tasks executed with will be associated with the current TaskScheduler. + + + If the target scheduler does not support running this Task on the current thread, the Task will + be scheduled for execution on the scheduler, and the current thread will block until the + Task has completed execution. + + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Runs the synchronously on the scheduler provided. + + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + If the target scheduler does not support running this Task on the current thread, the Task will + be scheduled for execution on the scheduler, and the current thread will block until the + Task has completed execution. + + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + The parameter + is null. + The scheduler on which to attempt to run this task inline. + + + + Throws an exception if the task has been disposed, and hence can no longer be accessed. + + The task has been disposed. + + + + Sets the internal completion event. + + + + + Disposes the , releasing all of its unmanaged resources. + + + Unlike most of the members of , this method is not thread-safe. + Also, may only be called on a that is in one of + the final states: RanToCompletion, + Faulted, or + Canceled. + + + The exception that is thrown if the is not in + one of the final states: RanToCompletion, + Faulted, or + Canceled. + + + + + Disposes the , releasing all of its unmanaged resources. + + + A Boolean value that indicates whether this method is being called due to a call to . + + + Unlike most of the members of , this method is not thread-safe. + + + + + Schedules the task for execution. + + If true, TASK_STATE_STARTED bit is turned on in + an atomic fashion, making sure that TASK_STATE_CANCELED does not get set + underneath us. If false, TASK_STATE_STARTED bit is OR-ed right in. This + allows us to streamline things a bit for StartNew(), where competing cancellations + are not a problem. + + + + Adds an exception to the list of exceptions this task has thrown. + + An object representing either an Exception or a collection of Exceptions. + + + + Returns a list of exceptions by aggregating the holder's contents. Or null if + no exceptions have been thrown. + + Whether to include a TCE if cancelled. + An aggregate exception, or null if no exceptions have been caught. + + + + Throws an aggregate exception if the task contains exceptions. + + + + + Checks whether this is an attached task, and whether we are being called by the parent task. + And sets the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag based on that. + + This is meant to be used internally when throwing an exception, and when WaitAll is gathering + exceptions for tasks it waited on. If this flag gets set, the implicit wait on children + will skip exceptions to prevent duplication. + + This should only be called when this task has completed with an exception + + + + + + Signals completion of this particular task. + + The bUserDelegateExecuted parameter indicates whether this Finish() call comes following the + full execution of the user delegate. + + If bUserDelegateExecuted is false, it mean user delegate wasn't invoked at all (either due to + a cancellation request, or because this task is a promise style Task). In this case, the steps + involving child tasks (i.e. WaitForChildren) will be skipped. + + + + + + FinishStageTwo is to be executed as soon as we known there are no more children to complete. + It can happen i) either on the thread that originally executed this task (if no children were spawned, or they all completed by the time this task's delegate quit) + ii) or on the thread that executed the last child. + + + + + Final stage of the task completion code path. Notifies the parent (if any) that another of its childre are done, and runs continuations. + This function is only separated out from FinishStageTwo because these two operations are also needed to be called from CancellationCleanupLogic() + + + + + This is called by children of this task when they are completed. + + + + + This is to be called just before the task does its final state transition. + It traverses the list of exceptional children, and appends their aggregate exceptions into this one's exception list + + + + + Special purpose Finish() entry point to be used when the task delegate throws a ThreadAbortedException + This makes a note in the state flags so that we avoid any costly synchronous operations in the finish codepath + such as inlined continuations + + + Indicates whether the ThreadAbortException was added to this task's exception holder. + This should always be true except for the case of non-root self replicating task copies. + + Whether the delegate was executed. + + + + Executes the task. This method will only be called once, and handles bookeeping associated with + self-replicating tasks, in addition to performing necessary exception marshaling. + + The task has already been disposed. + + + + IThreadPoolWorkItem override, which is the entry function for this task when the TP scheduler decides to run it. + + + + + + Outermost entry function to execute this task. Handles all aspects of executing a task on the caller thread. + Currently this is called by IThreadPoolWorkItem.ExecuteWorkItem(), and TaskManager.TryExecuteInline. + + + Performs atomic updates to prevent double execution. Should only be set to true + in codepaths servicing user provided TaskSchedulers. The ConcRT or ThreadPool schedulers don't need this. + + + + The actual code which invokes the body of the task. This can be overriden in derived types. + + + + + Alternate InnerInvoke prototype to be called from ExecuteSelfReplicating() so that + the Parallel Debugger can discover the actual task being invoked. + Details: Here, InnerInvoke is actually being called on the rootTask object while we are actually executing the + childTask. And the debugger needs to discover the childTask, so we pass that down as an argument. + The NoOptimization and NoInlining flags ensure that the childTask pointer is retained, and that this + function appears on the callstack. + + + + + + Performs whatever handling is necessary for an unhandled exception. Normally + this just entails adding the exception to the holder object. + + The exception that went unhandled. + + + + Waits for the to complete execution. + + + The was canceled -or- an exception was thrown during + the execution of the . + + + The has been disposed. + + + + + Waits for the to complete execution. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + true if the completed execution within the allotted time; otherwise, false. + + + The was canceled -or- an exception was thrown during the execution of the . + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + The has been disposed. + + + + + Waits for the to complete execution. + + + A to observe while waiting for the task to complete. + + + The was canceled. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + + + Waits for the to complete execution. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + true if the completed execution within the allotted time; otherwise, + false. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + + + Waits for the to complete execution. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for the task to complete. + + + true if the completed execution within the allotted time; otherwise, false. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + The core wait function, which is only accesible internally. It's meant to be used in places in TPL code where + the current context is known or cached. + + + + + Cancels the . + + Indiactes whether we should only cancel non-invoked tasks. + For the default scheduler this option will only be serviced through TryDequeue. + For custom schedulers we also attempt an atomic state transition. + true if the task was successfully canceled; otherwise, false. + The + has been disposed. + + + + Sets the task's cancellation acknowledged flag. + + + + + Runs all of the continuations, as appropriate. + + + + + Helper function to determine whether the current task is in the state desired by the + continuation kind under evaluation. Three possibilities exist: the task failed with + an unhandled exception (OnFailed), the task was canceled before running (OnAborted), + or the task completed successfully (OnCompletedSuccessfully). Note that the last + one includes completing due to cancellation. + + The continuation options under evaluation. + True if the continuation should be run given the task's current state. + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + The that will be assigned to the new continuation task. + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Converts TaskContinuationOptions to TaskCreationOptions, and also does + some validity checking along the way. + + Incoming TaskContinuationOptions + Outgoing TaskCreationOptions + Outgoing InternalTaskOptions + + + + Registers the continuation and possibly runs it (if the task is already finished). + + The continuation task itself. + TaskScheduler with which to associate continuation task. + Restrictions on when the continuation becomes active. + + + + Waits for all of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + An array of instances on which to wait. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + A to observe while waiting for the tasks to complete. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The was canceled. + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for the tasks to complete. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + Waits for a set of handles in a STA-aware way. In other words, it will wait for each + of the events individually if we're on a STA thread, because MsgWaitForMultipleObjectsEx + can't do a true wait-all due to its hidden message queue event. This is not atomic, + of course, but we only wait on one-way (MRE) events anyway so this is OK. + + An array of wait handles to wait on. + The timeout to use during waits. + The cancellationToken that enables a wait to be canceled. + True if all waits succeeded, false if a timeout occurred. + + + + Internal WaitAll implementation which is meant to be used with small number of tasks, + optimized for Parallel.Invoke and other structured primitives. + + + + + This internal function is only meant to be called by WaitAll() + If the completed task is canceled or it has other exceptions, here we will add those + into the passed in exception list (which will be lazily initialized here). + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + The index of the completed task in the array argument. + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + A to observe while waiting for a task to complete. + + + The index of the completed task in the array argument. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + The was canceled. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for a task to complete. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + Gets a unique ID for this Task instance. + + + Task IDs are assigned on-demand and do not necessarily represent the order in the which Task + instances were created. + + + + + Returns the unique ID of the currently executing Task. + + + + + Gets the Task instance currently executing, or + null if none exists. + + + + + Gets the Exception that caused the Task to end prematurely. If the Task completed successfully or has not yet thrown any + exceptions, this will return null. + + + Tasks that throw unhandled exceptions store the resulting exception and propagate it wrapped in a + in calls to Wait + or in accesses to the property. Any exceptions not observed by the time + the Task instance is garbage collected will be propagated on the finalizer thread. + + + The Task + has been disposed. + + + + + Gets the TaskStatus of this Task. + + + + + Gets whether this Task instance has completed + execution due to being canceled. + + + A Task will complete in Canceled state either if its CancellationToken + was marked for cancellation before the task started executing, or if the task acknowledged the cancellation request on + its already signaled CancellationToken by throwing an + OperationCanceledException2 that bears the same + CancellationToken. + + + + + Returns true if this task has a cancellation token and it was signaled. + To be used internally in execute entry codepaths. + + + + + This internal property provides access to the CancellationToken that was set on the task + when it was constructed. + + + + + Gets whether this threw an OperationCanceledException2 while its CancellationToken was signaled. + + + + + Gets whether this Task has completed. + + + will return true when the Task is in one of the three + final states: RanToCompletion, + Faulted, or + Canceled. + + + + + Checks whether this task has been disposed. + + + + + Gets the TaskCreationOptions used + to create this task. + + + + + Gets a that can be used to wait for the task to + complete. + + + Using the wait functionality provided by + should be preferred over using for similar + functionality. + + + The has been disposed. + + + + + Gets the state object supplied when the Task was created, + or null if none was supplied. + + + + + Gets an indication of whether the asynchronous operation completed synchronously. + + true if the asynchronous operation completed synchronously; otherwise, false. + + + + Provides access to the TaskScheduler responsible for executing this Task. + + + + + Provides access to factory methods for creating and instances. + + + The factory returned from is a default instance + of , as would result from using + the default constructor on TaskFactory. + + + + + Provides an event that can be used to wait for completion. + Only called by Wait*(), which means that we really do need to instantiate a completion event. + + + + + Determines whether this is the root task of a self replicating group. + + + + + Determines whether the task is a replica itself. + + + + + The property formerly known as IsFaulted. + + + + + Gets whether the completed due to an unhandled exception. + + + If is true, the Task's will be equal to + TaskStatus.Faulted, and its + property will be non-null. + + + + + Checks whether the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag is set, + This will only be used by the implicit wait to prevent double throws + + + + + + Checks whether the body was ever invoked. Used by task scheduler code to verify custom schedulers actually ran the task. + + + + + A structure to hold continuation information. + + + + + Constructs a new continuation structure. + + The task to be activated. + The continuation options. + The scheduler to use for the continuation. + + + + Invokes the continuation for the target completion task. + + The completed task. + Whether the continuation can be inlined. + + + + Initializes a new with the specified function. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + + The argument is null. + + + + + Initializes a new with the specified function. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + The to be assigned to this task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified function and creation options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified function and creation options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified function and state. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the action. + + The argument is null. + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + The to be assigned to the new task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + The to be assigned to the new task. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Creates a new future object. + + The parent task for this future. + A function that yields the future value. + The task scheduler which will be used to execute the future. + The CancellationToken for the task. + Options to control the future's behavior. + Internal options to control the future's behavior. + The argument specifies + a SelfReplicating , which is illegal."/>. + + + + Creates a new future object. + + The parent task for this future. + An object containing data to be used by the action; may be null. + A function that yields the future value. + The CancellationToken for the task. + The task scheduler which will be used to execute the future. + Options to control the future's behavior. + Internal options to control the future's behavior. + The argument specifies + a SelfReplicating , which is illegal."/>. + + + + Evaluates the value selector of the Task which is passed in as an object and stores the result. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new task. + A new continuation . + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The , when executed, should return a . This task's completion state will be transferred to the task returned + from the ContinueWith call. + + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be passed as + an argument this completed task. + + The that will be assigned to the new task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The , when executed, should return a . + This task's completion state will be transferred to the task returned from the + ContinueWith call. + + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Gets the result value of this . + + + The get accessor for this property ensures that the asynchronous operation is complete before + returning. Once the result of the computation is available, it is stored and will be returned + immediately on later calls to . + + + + + Provides access to factory methods for creating instances. + + + The factory returned from is a default instance + of , as would result from using + the default constructor on the factory type. + + + + + Provides support for creating and scheduling + Task{TResult} objects. + + The type of the results that are available though + the Task{TResult} objects that are associated with + the methods in this class. + + + There are many common patterns for which tasks are relevant. The + class encodes some of these patterns into methods that pick up default settings, which are + configurable through its constructors. + + + A default instance of is available through the + Task{TResult}.Factory property. + + + + + + Initializes a instance with the default configuration. + + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the default configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The + TaskScheduler to use to schedule any tasks created with this TaskFactory{TResult}. A null value + indicates that the current TaskScheduler should be used. + + + With this constructor, the + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to , unless it's null, in which case the property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory{TResult}. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory{TResult}. + + + The exception that is thrown when the + argument or the + argument specifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory{TResult}. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory{TResult}. + + + The default + TaskScheduler to use to schedule any Tasks created with this TaskFactory{TResult}. A null value + indicates that TaskScheduler.Current should be used. + + + The exception that is thrown when the + argument or the + argumentspecifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to + , unless it's null, in which case the property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new task. + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The that will be assigned to the new task. + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Gets the default CancellationToken of this + TaskFactory. + + + This property returns the default that will be assigned to all + tasks created by this factory unless another CancellationToken value is explicitly specified + during the call to the factory methods. + + + + + Gets the TaskScheduler of this + TaskFactory{TResult}. + + + This property returns the default scheduler for this factory. It will be used to schedule all + tasks unless another scheduler is explicitly specified during calls to this factory's methods. + If null, TaskScheduler.Current + will be used. + + + + + Gets the TaskCreationOptions + value of this TaskFactory{TResult}. + + + This property returns the default creation options for this factory. They will be used to create all + tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Gets the TaskContinuationOptions + value of this TaskFactory{TResult}. + + + This property returns the default continuation options for this factory. They will be used to create + all continuation tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Represents the current stage in the lifecycle of a . + + + + + The task has been initialized but has not yet been scheduled. + + + + + The task is waiting to be activated and scheduled internally by the .NET Framework infrastructure. + + + + + The task has been scheduled for execution but has not yet begun executing. + + + + + The task is running but has not yet completed. + + + + + The task has finished executing and is implicitly waiting for + attached child tasks to complete. + + + + + The task completed execution successfully. + + + + + The task acknowledged cancellation by throwing an OperationCanceledException2 with its own CancellationToken + while the token was in signaled state, or the task's CancellationToken was already signaled before the + task started executing. + + + + + The task completed due to an unhandled exception. + + + + + Specifies flags that control optional behavior for the creation and execution of tasks. + + + + + Specifies that the default behavior should be used. + + + + + A hint to a TaskScheduler to schedule a + task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to + be run sooner, and tasks scheduled later will be more likely to be run later. + + + + + Specifies that a task will be a long-running, course-grained operation. It provides a hint to the + TaskScheduler that oversubscription may be + warranted. + + + + + Specifies that a task is attached to a parent in the task hierarchy. + + + + + Task creation flags which are only used internally. + + + + Specifies "No internal task options" + + + Used to filter out internal vs. public task creation options. + + + Specifies that the task will be queued by the runtime before handing it over to the user. + This flag will be used to skip the cancellationtoken registration step, which is only meant for unstarted tasks. + + + + Specifies flags that control optional behavior for the creation and execution of continuation tasks. + + + + + Default = "Continue on any, no task options, run asynchronously" + Specifies that the default behavior should be used. Continuations, by default, will + be scheduled when the antecedent task completes, regardless of the task's final TaskStatus. + + + + + A hint to a TaskScheduler to schedule a + task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to + be run sooner, and tasks scheduled later will be more likely to be run later. + + + + + Specifies that a task will be a long-running, course-grained operation. It provides + a hint to the TaskScheduler that + oversubscription may be warranted. + + + + + Specifies that a task is attached to a parent in the task hierarchy. + + + + + Specifies that the continuation task should not be scheduled if its antecedent ran to completion. + This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled + exception. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should not be scheduled if its antecedent was canceled. This + option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent ran to + completion. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent threw an + unhandled exception. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent was canceled. + This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be executed synchronously. With this option + specified, the continuation will be run on the same thread that causes the antecedent task to + transition into its final state. If the antecedent is already complete when the continuation is + created, the continuation will run on the thread creating the continuation. Only very + short-running continuations should be executed synchronously. + + + + + Represents an exception used to communicate task cancellation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the + class with a specified error message and a reference to the inner exception that is the cause of + this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + + Initializes a new instance of the class + with a reference to the that has been canceled. + + A task that has been canceled. + + + + Gets the task associated with this exception. + + + It is permissible for no Task to be associated with a + , in which case + this property will return null. + + + + + Represents the producer side of a unbound to a + delegate, providing access to the consumer side through the property. + + + + It is often the case that a is desired to + represent another asynchronous operation. + TaskCompletionSource is provided for this purpose. It enables + the creation of a task that can be handed out to consumers, and those consumers can use the members + of the task as they would any other. However, unlike most tasks, the state of a task created by a + TaskCompletionSource is controlled explicitly by the methods on TaskCompletionSource. This enables the + completion of the external asynchronous operation to be propagated to the underlying Task. The + separation also ensures that consumers are not able to transition the state without access to the + corresponding TaskCompletionSource. + + + All members of are thread-safe + and may be used from multiple threads concurrently. + + + The type of the result value assocatied with this . + + + + Creates a . + + + + + Creates a + with the specified options. + + + The created + by this instance and accessible through its property + will be instantiated using the specified . + + The options to use when creating the underlying + . + + The represent options invalid for use + with a . + + + + + Creates a + with the specified state. + + The state to use as the underlying + 's AsyncState. + + + + Creates a with + the specified state and options. + + The options to use when creating the underlying + . + The state to use as the underlying + 's AsyncState. + + The represent options invalid for use + with a . + + + + + Attempts to transition the underlying + into the + Faulted + state. + + The exception to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The argument is null. + The was disposed. + + + + Attempts to transition the underlying + into the + Faulted + state. + + The collection of exceptions to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The argument is null. + There are one or more null elements in . + The collection is empty. + The was disposed. + + + + Transitions the underlying + into the + Faulted + state. + + The exception to bind to this . + The argument is null. + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + Faulted + state. + + The collection of exceptions to bind to this . + The argument is null. + There are one or more null elements in . + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Attempts to transition the underlying + into the + RanToCompletion + state. + + The result value to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + RanToCompletion + state. + + The result value to bind to this . + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + Canceled + state. + + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Attempts to transition the underlying + into the + Canceled + state. + + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Gets the created + by this . + + + This property enables a consumer access to the that is controlled by this instance. + The , , + , and + methods (and their "Try" variants) on this instance all result in the relevant state + transitions on this underlying Task. + + + + + An exception holder manages a list of exceptions for one particular task. + It offers the ability to aggregate, but more importantly, also offers intrinsic + support for propagating unhandled exceptions that are never observed. It does + this by aggregating and throwing if the holder is ever GC'd without the holder's + contents ever having been requested (e.g. by a Task.Wait, Task.get_Exception, etc). + + + + + Creates a new holder; it will be registered for finalization. + + The task this holder belongs to. + + + + A finalizer that repropagates unhandled exceptions. + + + + + Add an exception to the internal list. This will ensure the holder is + in the proper state (handled/unhandled) depending on the list's contents. + + An exception object (either an Exception or an + IEnumerable{Exception}) to add to the list. + + + + A private helper method that ensures the holder is considered + unhandled, i.e. it is registered for finalization. + + + + + A private helper method that ensures the holder is considered + handled, i.e. it is not registered for finalization. + + Whether this is called from the finalizer thread. + + + + Allocates a new aggregate exception and adds the contents of the list to + it. By calling this method, the holder assumes exceptions to have been + "observed", such that the finalization check will be subsequently skipped. + + Whether this is being called from a finalizer. + An extra exception to be included (optionally). + The aggregate exception to throw. + + + + Provides a set of static (Shared in Visual Basic) methods for working with specific kinds of + instances. + + + + + Creates a proxy Task that represents the + asynchronous operation of a Task{Task}. + + + It is often useful to be able to return a Task from a + Task{TResult}, where the inner Task represents work done as part of the outer Task{TResult}. However, + doing so results in a Task{Task}, which, if not dealt with carefully, could produce unexpected behavior. Unwrap + solves this problem by creating a proxy Task that represents the entire asynchronous operation of such a Task{Task}. + + The Task{Task} to unwrap. + The exception that is thrown if the + argument is null. + A Task that represents the asynchronous operation of the provided Task{Task}. + + + + Creates a proxy Task{TResult} that represents the + asynchronous operation of a Task{Task{TResult}}. + + + It is often useful to be able to return a Task{TResult} from a Task{TResult}, where the inner Task{TResult} + represents work done as part of the outer Task{TResult}. However, doing so results in a Task{Task{TResult}}, + which, if not dealt with carefully, could produce unexpected behavior. Unwrap solves this problem by + creating a proxy Task{TResult} that represents the entire asynchronous operation of such a Task{Task{TResult}}. + + The Task{Task{TResult}} to unwrap. + The exception that is thrown if the + argument is null. + A Task{TResult} that represents the asynchronous operation of the provided Task{Task{TResult}}. /// Unwraps a Task that returns another Task. + + + + Provides support for creating and scheduling + Tasks. + + + + There are many common patterns for which tasks are relevant. The + class encodes some of these patterns into methods that pick up default settings, which are + configurable through its constructors. + + + A default instance of is available through the + Task.Factory property. + + + + + + Initializes a instance with the default configuration. + + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The + TaskScheduler to use to schedule any tasks created with this TaskFactory. A null value + indicates that the current TaskScheduler should be used. + + + With this constructor, the + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to , unless it's null, in which case the property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory. + + + The exception that is thrown when the + argument or the + argument specifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory. + + + The default + TaskScheduler to use to schedule any Tasks created with this TaskFactory. A null value + indicates that TaskScheduler.Current should be used. + + + The exception that is thrown when the + argument or the + argumentspecifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to + , unless it's null, in which case the property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The started Task. + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors + and then calling + Start to schedule it for execution. However, + unless creation and scheduling must be separated, StartNew is the recommended + approach for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The that will be assigned to the new task. + The started Task. + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors + and then calling + Start to schedule it for execution. However, + unless creation and scheduling must be separated, StartNew is the recommended + approach for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The that will be assigned to the new + A TaskCreationOptions value that controls the behavior of the + created + Task. + The TaskScheduler + that is used to schedule the created Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The started Task. + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The that will be assigned to the new + The started Task. + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The TaskScheduler + that is used to schedule the created Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the asynchronous + operation. + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the asynchronous + operation. + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the asynchronous + operation. + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Check validity of options passed to FromAsync method + + The options to be validated. + determines type of FromAsync method that called this method + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Gets the default CancellationToken of this + TaskFactory. + + + This property returns the default that will be assigned to all + tasks created by this factory unless another CancellationToken value is explicitly specified + during the call to the factory methods. + + + + + Gets the TaskScheduler of this + TaskFactory. + + + This property returns the default scheduler for this factory. It will be used to schedule all + tasks unless another scheduler is explicitly specified during calls to this factory's methods. + If null, TaskScheduler.Current + will be used. + + + + + Gets the TaskCreationOptions + value of this TaskFactory. + + + This property returns the default creation options for this factory. They will be used to create all + tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Gets the TaskContinuationOptions + value of this TaskFactory. + + + This property returns the default continuation options for this factory. They will be used to create + all continuation tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Represents an abstract scheduler for tasks. + + + + TaskScheduler acts as the extension point for all + pluggable scheduling logic. This includes mechanisms such as how to schedule a task for execution, and + how scheduled tasks should be exposed to debuggers. + + + All members of the abstract type are thread-safe + and may be used from multiple threads concurrently. + + + + + + Queues a Task to the scheduler. + + + + A class derived from TaskScheduler + implements this method to accept tasks being scheduled on the scheduler. + A typical implementation would store the task in an internal data structure, which would + be serviced by threads that would execute those tasks at some time in the future. + + + This method is only meant to be called by the .NET Framework and + should not be called directly by the derived class. This is necessary + for maintaining the consistency of the system. + + + The Task to be queued. + The argument is null. + + + + Determines whether the provided Task + can be executed synchronously in this call, and if it can, executes it. + + + + A class derived from TaskScheduler implements this function to + support inline execution of a task on a thread that initiates a wait on that task object. Inline + execution is optional, and the request may be rejected by returning false. However, better + scalability typically results the more tasks that can be inlined, and in fact a scheduler that + inlines too little may be prone to deadlocks. A proper implementation should ensure that a + request executing under the policies guaranteed by the scheduler can successfully inline. For + example, if a scheduler uses a dedicated thread to execute tasks, any inlining requests from that + thread should succeed. + + + If a scheduler decides to perform the inline execution, it should do so by calling to the base + TaskScheduler's + TryExecuteTask method with the provided task object, propagating + the return value. It may also be appropriate for the scheduler to remove an inlined task from its + internal data structures if it decides to honor the inlining request. Note, however, that under + some circumstances a scheduler may be asked to inline a task that was not previously provided to + it with the method. + + + The derived scheduler is responsible for making sure that the calling thread is suitable for + executing the given task as far as its own scheduling and execution policies are concerned. + + + The Task to be + executed. + A Boolean denoting whether or not task has previously been + queued. If this parameter is True, then the task may have been previously queued (scheduled); if + False, then the task is known not to have been queued, and this call is being made in order to + execute the task inline without queueing it. + A Boolean value indicating whether the task was executed inline. + The argument is + null. + The was already + executed. + + + + Generates an enumerable of Task instances + currently queued to the scheduler waiting to be executed. + + + + A class derived from implements this method in order to support + integration with debuggers. This method will only be invoked by the .NET Framework when the + debugger requests access to the data. The enumerable returned will be traversed by debugging + utilities to access the tasks currently queued to this scheduler, enabling the debugger to + provide a representation of this information in the user interface. + + + It is important to note that, when this method is called, all other threads in the process will + be frozen. Therefore, it's important to avoid synchronization with other threads that may lead to + blocking. If synchronization is necessary, the method should prefer to throw a + than to block, which could cause a debugger to experience delays. Additionally, this method and + the enumerable returned must not modify any globally visible state. + + + The returned enumerable should never be null. If there are currently no queued tasks, an empty + enumerable should be returned instead. + + + For developers implementing a custom debugger, this method shouldn't be called directly, but + rather this functionality should be accessed through the internal wrapper method + GetScheduledTasksForDebugger: + internal Task[] GetScheduledTasksForDebugger(). This method returns an array of tasks, + rather than an enumerable. In order to retrieve a list of active schedulers, a debugger may use + another internal method: internal static TaskScheduler[] GetTaskSchedulersForDebugger(). + This static method returns an array of all active TaskScheduler instances. + GetScheduledTasksForDebugger then may be used on each of these scheduler instances to retrieve + the list of scheduled tasks for each. + + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + This scheduler is unable to generate a list of queued tasks at this time. + + + + + Retrieves some thread static state that can be cached and passed to multiple + TryRunInline calls, avoiding superflous TLS fetches. + + A bag of TLS state (or null if none exists). + + + + Attempts to execute the target task synchronously. + + The task to run. + True if the task may have been previously queued, + false if the task was absolutely not previously queued. + The state retrieved from GetThreadStatics + True if it ran, false otherwise. + + + + Attempts to dequeue a Task that was previously queued to + this scheduler. + + The Task to be dequeued. + A Boolean denoting whether the argument was successfully dequeued. + The argument is null. + + + + Notifies the scheduler that a work item has made progress. + + + + + Initializes the . + + + + + Frees all resources associated with this scheduler. + + + + + Creates a + associated with the current . + + + All Task instances queued to + the returned scheduler will be executed through a call to the + Post method + on that context. + + + A associated with + the current SynchronizationContext, as + determined by SynchronizationContext.Current. + + + The current SynchronizationContext may not be used as a TaskScheduler. + + + + + Attempts to execute the provided Task + on this scheduler. + + + + Scheduler implementations are provided with Task + instances to be executed through either the method or the + method. When the scheduler deems it appropriate to run the + provided task, should be used to do so. TryExecuteTask handles all + aspects of executing a task, including action invocation, exception handling, state management, + and lifecycle control. + + + must only be used for tasks provided to this scheduler by the .NET + Framework infrastructure. It should not be used to execute arbitrary tasks obtained through + custom mechanisms. + + + + A Task object to be executed. + + The is not associated with this scheduler. + + A Boolean that is true if was successfully executed, false if it + was not. A common reason for execution failure is that the task had previously been executed or + is in the process of being executed by another thread. + + + + Provides an array of all queued Task instances + for the debugger. + + + The returned array is populated through a call to . + Note that this function is only meant to be invoked by a debugger remotely. + It should not be called by any other codepaths. + + An array of Task instances. + + This scheduler is unable to generate a list of queued tasks at this time. + + + + + Provides an array of all active TaskScheduler + instances for the debugger. + + + This function is only meant to be invoked by a debugger remotely. + It should not be called by any other codepaths. + + An array of TaskScheduler instances. + + + + Registers a new TaskScheduler instance in the global collection of schedulers. + + + + + Removes a TaskScheduler instance from the global collection of schedulers. + + + + + Indicates the maximum concurrency level this + is able to support. + + + + + Indicates whether this is a custom scheduler, in which case the safe code paths will be taken upon task entry + using a CAS to transition from queued state to executing. + + + + + Gets the default TaskScheduler instance. + + + + + Gets the TaskScheduler + associated with the currently executing task. + + + When not called from within a task, will return the scheduler. + + + + + Gets the unique ID for this . + + + + + Occurs when a faulted 's unobserved exception is about to trigger exception escalation + policy, which, by default, would terminate the process. + + + This AppDomain-wide event provides a mechanism to prevent exception + escalation policy (which, by default, terminates the process) from triggering. + Each handler is passed a + instance, which may be used to examine the exception and to mark it as observed. + + + + + Nested class that provides debugger view for TaskScheduler + + + + Default thread pool scheduler. + + + + A TaskScheduler implementation that executes all tasks queued to it through a call to + on the + that its associated with. The default constructor for this class binds to the current + + + + + Constructs a SynchronizationContextTaskScheduler associated with + + This constructor expects to be set. + + + + Implemetation of for this scheduler class. + + Simply posts the tasks to be executed on the associated . + + + + + + Implementation of for this scheduler class. + + The task will be executed inline only if the call happens within + the associated . + + + + + + + Implementes the property for + this scheduler class. + + By default it returns 1, because a based + scheduler only supports execution on a single thread. + + + + + Provides data for the event that is raised when a faulted 's + exception goes unobserved. + + + The Exception property is used to examine the exception without marking it + as observed, whereas the method is used to mark the exception + as observed. Marking the exception as observed prevents it from triggering exception escalation policy + which, by default, terminates the process. + + + + + Initializes a new instance of the class + with the unobserved exception. + + The Exception that has gone unobserved. + + + + Marks the as "observed," thus preventing it + from triggering exception escalation policy which, by default, terminates the process. + + + + + Gets whether this exception has been marked as "observed." + + + + + The Exception that went unobserved. + + + + + Represents an exception used to communicate an invalid operation by a + . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the + class using the default error message and a reference to the inner exception that is the cause of + this exception. + + The exception that is the cause of the current exception. + + + + Initializes a new instance of the + class with a specified error message and a reference to the inner exception that is the cause of + this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/ensureRedirect.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl4+win8/ensureRedirect.xml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.IO.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.IO.dll new file mode 100644 index 0000000000000000000000000000000000000000..32dd41b780e3abf07d8bcbf35ba532ffc8d4618c GIT binary patch literal 22672 zcmeHv2|SeF_wX}|eJ7H2?E84ePRK615D958m@uO;*2*$U^i7l~Nl_G$B`r#lw9$g3 zw2Br~N{dR8_da87`F?-j|NH)b|L^;IKkrj>o_o*T&pr2?bI-jGrE*ok^uyG>GKd6*Xm73R^Y8@%fA5F{~^_IKVm2x6a?j~&F9&Wq#eq&PZ=TOoY|Y0R;Le$Rh!pmjVgiWUfv z%)Xg{05Z@8;5Y9v1HH%7Na0kF5$P+^XM_fjDEQ5L%pk~OUX&TcA#?=~(l<230>#OK z%0ML?Oe_S2%0Lhg3W8j55R^QP`>WS`my>ToM1`aRKizr%tvH(SbkU_qxxPEYD?DCZ zpxhkjA2{#J=dd?xpZtwZ<5hy&Pi&LVXFn7CtnSH7>9%QDVWC2F6zqVNeJaa;S}AjDP*Y5{mg~D0J+Gb^ zN}-hjbvRXpU^Ju+ItscjkO%;FfwC~btK(=O64?Q$gH{#+2dIa!mDe9X+M zVu>IJR#gg}%zS$)gBL4J8Wd$FP#1v$s#<7e7Jyb3MlqZX{w5iKdQ=hzg|A!pQ;ZI8PES zicF=L=-^@GpE}MmI-DL&BbiW0(R3OyTpi~c9S}|qbRflhP{T+RlK_2vqHdtB9>Gvs zhXflK%Kh3{G=)x%AkDPyPNIVWBE(`ouI5(Ae_i{sP9**u{N!yR5<~$%8bpQyAv+L` zfrwBzhy_7bAVdd0!^uIoAR?WJiwz}*lW;+#Kxz<~5(1VIWZ`aa zftqd*;n^5uaN4jo!4Rp01yl?{=P?i@mk2@XfaiO_PtKiA1I43|99Y1h2+ztbcZVE7 z7+FSgw#)6Tz}pwZpMmknS%gyqKpc5M6y+s+0ENs0^i@F{0+Wvfao`84M$(x)kBA#E zX%JuwW;&7wbc2}(2_yNCH<;JyH!HLb)WQlem~bl-9)|J&rUz;PFb5TnVudPEt3mh* z6Fy2oCWgX+nBsIy5v2$yYs`$LF>66XcC#@9kmfcUGXbsp&c>`jPm%twKp}9| zEJQ=W%y2Y-Xpl;PK0*eNArqQ2p&b)0V?u8xBr+kH3D+`VJQJocVFnX!XTp2{?V)l2 zU7=b41)@sSDESdG zfyMw_i&_MrAfy6yL7^x-XvqnUz+eDVp%wtSpdA1&1ib}N9FhkZIcN!hYD{PkZ3f}R zP$7VpP$hs4Oz6(U_%Op^&@q6IV%EP7I)k=^av%egCG-dM8I&miVLN8)sn9DZ4&{kL z1L{K1VF(dsCMcjZA#0Qlpe!292J%Dr1q&deL)ai}GBO)1pr6Paf|dgwnp!)^Y#}HV z5G2Th2ERER4nZ*=q*N2KFpA4W+ChA#30okLfK*H%GFzDz<93u_>TKp|9E1;~Q)y5LiSGY% zwFqt|SJb>Pg1046NHlWbJW4<_S$~rR1aveBiXcTrf&M~d3Me}_&@fW`Ot0Ohlm&iT z4*?Mjc@Sx!JsV)=kz%Q|usN#CP}!0i8BZgJgwlVP6cI_J#Q&OL1C+#c8^0zZRH8*N z2}cb7(_DX=;6bK`lYXt$iWC({BQsg$*F;MyC72u%O=C9tYqBd1aAn|c2IxTp8a#sd zTe3`P?zzgGr&RdNBu6f-I50P0 zt&pOAo;pivL?oat&7DMxAp>gznnEx~=0*x9#xX-tbFEI#Ig$+|1(3tZ^m#Kj-6u=X zlod4sKT|uzWHKV16ojPARW{W(63v-PSsq2A{g^mYc(&|ZIj|y0G!i9{WW6?;7#;7F6sr9?_lI0>{$M`AWKYQ!{Vh6|YsXf^`!O^J*d>L5*1DI^LVp;-8^16hp%IIwxcvLiSEgfZ-hsenT9vf|JvUO^5PWC+>` zBr+=^w?W*^-JF2fMu@S%*7?=zV%5EogZPa{_^Kv&h6X3ryw2J@j)@6Rb!LEK#k=Dr%j;)@GUrR*4!#TWb>z-z zuE}XCW6mxo zya$yU9)$XCWiw{n{C>x27^PC4p3oe2?N15g9+f?45eMUILLC&oJiS-SwK1UFL)&OJH+ zXaF4)q; zeF;bgVUS^3-XLSfdeDHjfp}36$Mh`Oxd3t_G>6y#B}o*pV@6GHnxzm@dZ0zTXv9b$ zHD=Y4M<}v7nPtG9K<~K+QX1h!34pr|#&sKP1l-)M+?7z!&Uc^>H`aeTIBsMh*e>DyrCe2+z9aK1L$N3mYG)$yMW3wvBd2t z-|efqURep1da;cByRJnH;RKk0ZGah=gGCrL3XK**eD*7cH9tPX_VJg#HdiP0j5(a1b&zoL9z+4xsie*sFWar6fA*Y zIE8+1_7Y@ZX(SyZBsymndjJ=?2H5RIMB-d6&0(p9JOmwBS4*3qPtYdlt^`qC*kCpa zr&RpdGlX!=o}s*M5;9*Wxq116}v&)UZxF1fElmbR~Y zbDm-GiV-!m%w3@AQH3P+7^iC-SL$1F_B!zpY8T6fVvhY6V$+Kbu4s0d4EgZ*^_5ZW zhg+<9^K2F=UIKb_r_^7;AGT6 z28shvgawuaB$edFieML<3weS^i&t~fc#I^IwibrT1`B*<@{Xh&RumRVULdFQ<(`{O zB~y+Ym0SW);$<>L$O_BogvVf`h?^2PjYt=>IkNWWNm{17?6 z89%gH?j`#z@{54pweMcZHOY|1O1v)SXgm;!6Fy>k;Mt~c3(uW*5q@xFr0k4bWQRA!ZDe)x)KJBm4dFLXV0)8r=Y!4b{e346n{WHy```!3|_wmR3y=k$tFa2Qa& z^T|;~XUF1Qk#&3K!j|w`wzj*Wt8X5>{mV}k=NxTx!`LKQ1MCZ%tUS0Ui>v*m5zVgcDPL4^A zo-IOLG4I&MuG?0Qr+2%RN-2Le(P(eqxI1kvNuYgGD~DBDA9bMiTcw#*Y55;=OBi;A z-Fe=wLf)cLla|~^)ov%jW+5|zX*Hmf@9!2WW}dW?Ue)jCn(3K#&fd5kJ9v2WiEB-% z@G@j^3t)k~D6xU92tUn_HcUWRiA6{iC^f)=$Jy?uV*P5kp95}UBan+p-C&L%F9`X0X zh^k5|C9(}&B1xZU=Q-tZMcH6w`oOy8MJGMA&h%fumh+&R!sll-db{SWc(-$NHSb$o z!TY}NN`8ZvCW)UG-BRY1E$qD!$=D}K>yf*jplrb+ocV;QQ7Ld(!(E@ zu<9PZ;GRYjh~>!A^*-H`RtA0lLfD}GaVtyV`R49eTKJHYw_@tM3&+yEa&)2fu4-q! zzkQcbF<^8(cH3pGBI=yyQ+UQ-{NOt!*OzR$gAqDB23`;Km34EC4EEk0UbD%MS5{!v zI+($77RbAjDS5|9)K&x+WxzxDiCC~d(=g-Y*rAw_^Ikm&wMYa5lpA3YVlU1^a?I*J zf(EQMCBo$AM3@^D+#s?9x{4f34g@|roOv`olu84K5lm|gh7Gg{KzdF`BpUA~>i?a?ffU<g?J=|3M4)yxAcQ3=f?-JpE(rZLd6+5L_r1g68 z@dXQKxo#TtK-Y^iqpb>O_i-e&(#avSv@zacZGkP@{RxHM!szt&BT-gKcT*mGXne0% z(&}sdu==RU6XnodVuwp?tC_(yOUOQC&phY);e{Qfk;P`56hVlx6IOGWX=1F zxW4b8tMtccdOTVHdw;o=88C6J)!&BTdRj^7nHk(pQ{h*Zy`t}IQlw>)eWTcbb(62N zCqr44MeCHqU6;UtTN(lHtW5?g*`ZH1#rryawko<0CLFPUZ_}=CY_RWmtZ(VUeVNw; zvOJBOD>?izT{9AF6_8*nVLn7M2%%7uSQZ!qUh|~aZzTz06-)AAv0%fH1`D!sOz%g8 zQCJpc#lZZX#i0?4ZK9Ll+@-iBw{Q3A#bpHQA>*?>8t|goObgIhZYfT%>yHMzb4$ql z2U*5j$yjaXskH04g3veBK2G;s?`I{j>y#|BgKc5!BFiH4v?YIEmd)}z4X}0~;B2N8 z^O%uZK#DDefl!`_11V_{wlxFD9GE;G)d8>`W4lzR_nx?SG<~( zGP}>O{G*2*7i-+LJj(U`+K>j}pxpKKuDg?E{3=Z}9nTyn^W6J1vZ4O?m-rKQw9lq5 z&6C>txEGSImF~r9eC2Yz=y^lqsr{|9kppEs2Qa0cPwKZgc)icH*!%9o+c!_sq;-tz zJ@<^b%WYCEVMyfk?_`sF-|zfoYjNA4Q0aE(tKzq^Xt}CuBMQX6NQ}7O3Arvi=_`5T zz}7~kWATBWRtJ{d7#ljc!t+r9+S*Ff|Kt6t+YBwrw~}0;XRpWu&#q+ceG{)v=Oz!!Ilb`90G0k-541 z3dfsGyjxu&c!iuz)~hVtOY8g)-q!p&@}SoauMImhi^P{=R(@_j7{W;})f?8(TzK^b zO<(XMwbnR(=(+nU)^AXCNTyLaS3Ra$5&_Zp3cm@r5(@92Axb)Q61lWMftnn`j&UO#^s|8ad+_B$;mFoTs1$nUo^@>?Vn z@za9ylYc^f!}_oexbmf?s|_0>@|(bnf?Hr9`p<3i|CRLKUmRZB`(Wt~)%9WcMSYF^ zPcP*!lXE?K^O2~tJl~tn!<~*t=`c><65?x8oDUW^%el8@ezk7r=vYHh87VG?(RW+|MxT<7=|BVanzY-f-d9#5=p{24!|7ez_&|f&G+wgxhiJ z?EOn2d)r_EC6(Z^UC+8$Q|u3nZ9FVsyMTkSf8+4-xbLVvlCJEVAb!|p_|#)Ln}&-T z9{a1M;>-!L*9&?Vr{)wB(I+H%YQKFhIEK0@>)D$2B9pD}eMq{8!TZw;SOf zq&NSp5C+m4$a4rz*^S6nIc!QcoRXQm;CJG;IIx8HZ#OR({P9OcitUR^k2*%J_{b)N zC;i7r{lB$!2ejtjwWY-uW2N_K==jmt2RGxFIiYIt^tC<_+(H#M&#lX<$KMt_ur(r} z-V1%r87JhL|0uz%->ac|#U6=1NmN>8L)`m6I$keEz3D%f#mRCtb7}vGyYM5IiXG1e zGS_q`H^12Vo>g-bW@x*rylmw7r*F^V^6@;M+4>{TiaHl=3*)5a))yP@4bix?jQ3@L z?-G&Sf8dt%vx#YqT_@Pb5KPo)TvuO4noMru6zaXeN!&Jaw|?O(=RcAz>8h>f2f9lWAWLvvtkQ`+@qo`Z#vJHsmt9dCb% zZ#p8H5TNq*K!J)5Yphs6tBF*EG-HJ8ih4u4W!>|!*BeeeEh(ex);nKXD<`NJ!)5HY zb?r(U%LQla>S~-quI{&(OpcdH-X{zP4_XMW61%!jR;I&pNNuR$G}51%=fQslE$p{eNY#x|KducTaB_q?%t@)<>@cYp1x(Lw)=jh!o@@$zU;zusl^+wZ3mmi zxhl8`#;{S5M6%d#&Vi=S!ivR`MgPnwo3BTKPZi5RK{14YJlmuIDO-NZW+{nPCFmM8 zX(#y`H{>NElJB0azbY7G(y(H4rnpOV`jQEAhvj2FK1;PbuSoZmtT}%B^PV$KikoF$ z%4U&51DY;3(g^Mr8MM@G1WOx>ZypNbiZvM>WJKQ|Ms1O{3d zpaht_x9uO(^}j!Fn8$g3u;^T`F$AvJ2pbCU-7IIZ5crsf0bnNz{1SSw?#f^I?tX)- zf7Z7%8)~{7uV#PS@^xL-3$OXS0vxIcuLS9TeAnmp$dLLyi<>thTSQ!H*LlaV1xwU@ z;0OC2m3Z#HG8Ub4>1KAqDOGO11ve_cb14+b_=OBdJTMhb9CC0ipSa)O#G#?uBB5u# z4r6=GqVISpJU&5sx3McttRno(Dv4W1HeVHbJEC%6-H6VTS0ft+w^*<$uCL`jMv&Y& zxo@YS?>)Xj*~d?n4wIb(&!stHGDkM8>8WKT<#sPo9^*QBgeWLCE}NCRfBSi#;XI8) zB^+6en=mU@rK7XEn^SZ=WITwxTp2yqDg>G>4XWihWT7H9hAx>}pp*d>p5^=jX^ z$MFT)-$IvVly2*(wb7P(XZWOu!LtJx(EPxF{xZ+uYmg}yA)<6p@d?wCHkd!FT%b#d z{}!jJGOP$JC2(FPJ?Aa?+2M-=UNXYeu@wOZK?4GTpoe&U^#GU7ME^s)z84lJ+Vw*;a-Y-dHTmd zo0ko^R+MJXHtu`(hM(w-2ZcI)v(Vg*D`(%MY;RjO^8Mbigo&O(1Jv0R>k6YmG1W(g zsY}=%^z>zYGgQ~xhuZ%(H1=v7)$|K)GEa>E+`A(k#C>IZHa3}7Rkv|^KhOMQ%C!NG zqmqEty>7}yp@5t>%{U4$m|4zuWJk^Op=xC%7yG#adK3BENZgg?5TF1=#2 zE_!#=Sj*Md>HJ)uRW*d-1hc+}mF-?7VRzH$kWOB}gEudpa^DjVyz*6)`1&-&Uh(Yu zdco3@hZ;$%c_p>I4SGfTw0sjg)(Ntu98at-_j_P98SJ>vOtIYYyK}~pyw31TJyq8f zgZr9DPd_&Vel3eo0eU-B4#FMjK{t!rC z70cf6bW24NmBUo6GNjpd_*j`=f^iMY=;|%qHY1+C?+>fh-~~jg`?uffRX+NnJ9o*K z`q8jS^uXx{H_lGfnVnx-WmCA7^6V3f-|IJ!QtDNkbuTU$^}Us7_*|@S^E|C$S5B$h z{+fGBkH!>g4xJ0vTOroHiIdrB9m%;|zZ_ngmZ1p;uu7-+$|hEwhrJ!X^uBhi0cYcbHj zUQa+H*Avj-dIDH;6(e71{1W)1J(MF1ekYwX?@z9f*>54P8aA}j^+-Ldff&~AOi~NC z)Fb_{%Yr>zBL)}pS!=EucB2*$EV?py;)6CP?p!S&UcJw5?@;KfTfGJD$2iqns_&Jn zRV8p#-_7%GTP?;i6dW_C<)$d8IZ(mw+FoaM%CF}l9ur*=`r%r{2P5BNk&iZKo)`pG zQi62j4iyFRX>^(8e0lnqji=i;zSK@-fahG1Q0%##CU3`|s;%UgcJfp{kU)DPXmrYM zRnPFS<@VHj>yE8U6TfF#yVY+n!)2q``(jP+XW5H2s}VoZlNVSp$*9QHreD~dV4{_ z>p^PfYbQJSaK*OX*FO8Jzdfo6?r+|evTpd!u)~0z%3&epLx(qnB)`}a5a)kPbK_mF zy}nJc%F6GCBU+TR)U(X=U7GtgS!G=0aJ+Q8)KZh4`p)MY|GONSe*M_9=<~8l*`Zo2a+IzG!|$g*rmv+$RW+{?;j3;~ra3f9MEkFrLzH(AH82X?VIhMLq2dE0qwt~h2-s}40yL~6rG=B6cbn9o zc{>*Qpg0iRkn{)lC6P~xr@oCrK0T&Gc%0-<0+p$KL*A#A?tbDCFNW{xp@+y8aODZ~ z1@6eV$lGu$o;$ml%BH7g ze!QlLwo$#Xg} zTZ%%}^J=Bxjz=GOtMiq2?RMfd;d;-WaYwpEOSFIFlEzJ+eaGz#IWKcwxO}wg`LTNs zgwvNo@F{wW84K$nl&Z2RV~LPcFxUAyr_sKw zBnhhU2J6Ey&&^ax2V4By0@7L}1NC;L_1^#R<-JJp9;Ln;rMo)b_yw9j^bG_zQc$MEgCTYIj^{Lo5uLrtQY}4rdVOJ@K!&3hIWa$n_ zaXAac*T|clDxS38$674+}7J09TB+Qq_fb|*`+DjOSU*pKuad!tvP4ylJT=YEJ)M_YpSNf&i1Fb}UK%zLzrVRLB4SOeTa*w_g6jL$5(h4pua?bdr7GVj%_l^4B_i<^??v6RI1X(O@PkVT`RaX73P@3bn zD!(p~o37*?E_%Z!wc;h}`<*vk_&58zP6pCgjGou7Ki%y0&7#o%0j5tcExYTC90`|`D2idNld$YG9EaJke+)E)xO{6#9*wIK^R#ZJI zx3||wdHtL2DA@6kfrh2gvP0#D(vImxonBO&d(FZ_r2(Va_RmJRGCD5lm*x#IO6*3v zEItUS9nhZF*>t~TM8#I8@88zZ!Xlg? zG;x~!(f3;6bCYJqJ5{Xr$y~uo2z|BUG%dyzGlaBYh7f*sLx#ZsKZcMLz=_Sy6ynDa z;sPi(Gz#;pAA^C?W#yV-5PsmwV4&oIe+UP(odn>O>8dw+b7D|nFaM(x1bnr&=fZnU zeVGzZQMhJ{Q_M}3L#pD3r1swGd~YT`*xnh0X7y-RS{z*<3OdUCqHEf1g*Vgzt}D)$6k++Pjf3Re#^J|H&&Xy0 z22A&>F+TsUaJeMU*;s)sM!47Cgm#U7O(O3MqkHgomvTakP2zHK5jSB39aD#4Eb8af^kM*|JW)y{x7oNu$B%F?m*rZ#x_& zD9`t_)t0?aP~{|y+;?W(elne1cQ8((W+?xL@qnh)nZq9+1~rzTnsFRCaW}r5J>P2O zw@PF$ip53NY34{2xGGWoe`$<%gO3om5VAj5u3K*-en~rY<)(<`e{~n-?;E4tpFFQ+ z4Ic0f2<jG=QdKy~VOhfd);nv-s)D4W#BBl|FTnI|Z zg;RFGDOo?*p((J*tQmgr%OWrSL~x@!iJf{Ea3+`nOkx`MBQ=B!ZUo9w@3 zg|fX!U&hma`N{4jDQht%g$IjesCBOnT^}W!YiH>%|Nhl0Vi8<-;Zktxn%>cYk+{Yy zW&0GKj-4G2^YCIw96#;8_4>!vf?Hy)o0*vxJoH^S={vS+q3&*ZPY3#23;wIs zO-YxN-s^8zxkTc9e!Ts5H>lcxZ{etBd5ar-c)G%w3r zVS#IVdU$R3Bwy;dak%5{hSZV1#cMfw z{ph=8*@^dST&1Xu@A{zL0Rme|j?rh5ZQS6OvZWQDAJYk$=y^>KC7I7xE1mBv z*VmRm$UAn};y`QrB6FuFX=AE;4hjUrT@7?Chu*+-qxoAj#jnUzd!ML!Xl1<1b?x2a zTbGtUB|r9R?tBcNpSb?QX`H9Y&t<4kYLS8F+4dDI__sVouDbW%awti3*Cpyov7foG z_n^x^>oGmuP7o-ZTi{&a%)D~}m!pFoxvt7PLzvDWm!GxIKP%GbeawQ~n?z0praxw3 zM*p+4{=ZaE#mjfZW?#@)h8HF#@8MpaXC%K#f19${F}*iID!v)q?VXRbKRSFXSa8yX zx<7g}$UAq7dF<}projmYwK`v{4{a3a(k(9i;JR+p`L|LE@2ZTyd^djl`tzF>Emltr zVhOfz#AUZ?+C=cH(JQv2ENeff#OaiJi_rH>^r=4P@6`BuB;ByYT08F4Yvb4$!c*7W zcBvdz_JnY!l7jt;&o?%W?<3$9UlJd^xd=)>Ek`q#tT*Wt<>ZK}H>qD@y_#Wz( zj5DZrceB3c61A_+4)&?JNnLXAr6DEb-SP~a`Z6Khn$%EXi+!z|^7r1%N-Y0kzU0e)kT+4~xXj)H$6NUcYGFivQvM<8SrV|KVM3 zU}1o-SdhEiQ(6W1@(KT4TIEmb{@IEDukOe&J^LsWM5J(yiNIeD8}xb#6el{J63aL% zyH9?@f2vY4U6-K6EXw7XI6gV!zVUiL8JH<51I{e;S(Ahj0P(0J8PCtjX<((vL^BuYI= zNl4yLW6jv25sFIq!P{%_S2vETXDSe23T>s`!1AF zeAsiP2TG4&U$c~EH#;{OrFq?bi)|L;F};Bce}tB_-I|}iFl2{_v(C%F(J#xB4+jQ& zD~?=}we`X|lm#1I(-`@5Jgqgcq-o9YaNN<@g7Tu4M=4Qj;uUo|J=#aUZa+05cVRJx zvx$8ywMp8v3mtV@^lS^`E7V@$-uK|NzKcBdQ`w_DuER^kZMwxC(r=>W&JUR7%6cjD z78N{Qk(WJrV9k{m0c!>h*cCJ^?(^ZjJfyto#GV66BE#qnEd1Ih+~c-?{8Xx^dhVPa zyXR*gnW2%`23EWq-=Y3{_e(<#>x*ws9Wvu37hfbab~*c-jCCedNww;8!t&5%KX5Z< z6s)*+%oUgO&+hxCd|AISW9Iv^7$_}x&aDA%XYu^txPX6lPA#|J>v%B>e%{zlv{2)6 zV@OI>c6IT5zOHkkKy9o$f6f%WT|1`XO7ydmlI)tbj>oT@ rz5h85#XoEwx7zT&u67~RXrIN6RZCvib^UU5>Gl{(`|}#6kqrGWMmr@g literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.IO.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.IO.xml new file mode 100644 index 000000000..e83273427 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.IO.xml @@ -0,0 +1,51 @@ + + + + System.IO + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Found invalid data while decoding.. + + + + + The exception that is thrown when a data stream is in an invalid format. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Runtime.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..118fcce204348879c199c5ebba06751972f7f298 GIT binary patch literal 22176 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Runtime.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Runtime.xml new file mode 100644 index 000000000..93cb00d74 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Runtime.xml @@ -0,0 +1,56 @@ + + + + System.Runtime + + + + Defines a provider for progress updates. + The type of progress update value. + + + Reports a progress update. + The value of the updated progress. + + + Identities the async state machine type for this method. + + + Identities the state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + Gets the type that implements the state machine. + + + Initializes the attribute. + The type that implements the state machine. + + + + Allows you to obtain the method or property name of the caller to the method. + + + + + Allows you to obtain the line number in the source file at which the method is called. + + + + + Allows you to obtain the full path of the source file that contains the caller. + This is the file path at the time of compile. + + + + Identities the iterator state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Threading.Tasks.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..a60ab265715dca3e129eaf80adcca908b900ddc7 GIT binary patch literal 35016 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Threading.Tasks.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Threading.Tasks.xml new file mode 100644 index 000000000..b47921e5d --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/System.Threading.Tasks.xml @@ -0,0 +1,475 @@ + + + + System.Threading.Tasks + + + + Holds state related to the builder's IAsyncStateMachine. + This is a mutable struct. Be very delicate with it. + + + A reference to the heap-allocated state machine object associated with this builder. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument is null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + + Gets the Action to use with an awaiter's OnCompleted or UnsafeOnCompleted method. + On first invocation, the supplied state machine will be boxed. + + Specifies the type of the method builder used. + Specifies the type of the state machine used. + The builder. + The state machine. + An Action to provide to the awaiter. + + + Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext. + + + The context with which to run MoveNext. + + + The state machine whose MoveNext method should be invoked. + + + Initializes the runner. + The context with which to run MoveNext. + + + Invokes MoveNext under the provided context. + + + Cached delegate used with ExecutionContext.Run. + + + Invokes the MoveNext method on the supplied IAsyncStateMachine. + The IAsyncStateMachine machine instance. + + + Provides a base class used to cache tasks of a specific return type. + Specifies the type of results the cached tasks return. + + + + A singleton cache for this result type. + This may be null if there are no cached tasks for this TResult. + + + + Creates a non-disposable task. + The result for the task. + The cacheable task. + + + Creates a cache. + A task cache for this result type. + + + Gets a cached task if one exists. + The result for which we want a cached task. + A cached task if one exists; otherwise, null. + + + Provides a cache for Boolean tasks. + + + A true task. + + + A false task. + + + Gets a cached task for the Boolean result. + true or false + A cached task for the Boolean result. + + + Provides a cache for zero Int32 tasks. + + + The minimum value, inclusive, for which we want a cached task. + + + The maximum value, exclusive, for which we want a cached task. + + + The cache of Task{Int32}. + + + Creates an array of cached tasks for the values in the range [INCLUSIVE_MIN,EXCLUSIVE_MAX). + + + Gets a cached task for the zero Int32 result. + The integer value + A cached task for the Int32 result or null if not cached. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + Represents an asynchronous method builder. + + + A cached VoidTaskResult task used for builders that complete synchronously. + + + The generic builder object to which this non-generic instance delegates. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state. + + The builder is not initialized. + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + + Gets the for this builder. + The representing the builder's asynchronous operation. + The builder is not initialized. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder{TResult} is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + A cached task for default(TResult). + + + State related to the IAsyncStateMachine. + + + The lazily-initialized task. + Must be named m_task for debugger step-over to work correctly. + + + The lazily-initialized task completion source. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state with the specified result. + + The result to use to complete the task. + The task has already completed. + + + + Completes the builder by using either the supplied completed task, or by completing + the builder's previously accessed task using default(TResult). + + A task already completed with the value default(TResult). + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + This should only be invoked from within an asynchronous method, + and only by the debugger. + + + + + Gets a task for the specified result. This will either + be a cached or new task, never null. + + The result for which we need a task. + The completed task containing the result. + + + Gets the lazily-initialized TaskCompletionSource. + + + Gets the for this builder. + The representing the builder's asynchronous operation. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + + Provides a builder for asynchronous methods that return void. + This type is intended for compiler use only. + + + + The synchronization context associated with this operation. + + + State related to the IAsyncStateMachine. + + + An object used by the debugger to uniquely identify this builder. Lazily initialized. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Registers with UnobservedTaskException to suppress exception crashing. + + + Non-zero if PreventUnobservedTaskExceptions has already been invoked. + + + Initializes a new . + The initialized . + + + Initializes the . + The synchronizationContext associated with this operation. This may be null. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument was null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + Completes the method builder successfully. + + + Faults the method builder with an exception. + The exception that is the cause of this fault. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + + + Notifies the current synchronization context that the operation completed. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger and only in a single-threaded manner. + + + + + Represents state machines generated for asynchronous methods. + This type is intended for compiler use only. + + + + Moves the state machine to its next state. + + + Configures the state machine with a heap-allocated replica. + The heap-allocated replica. + + + + Represents an awaiter used to schedule continuations when an await operation completes. + + + + + Represents an operation that will schedule continuations when the operation completes. + + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + Unlike OnCompleted, UnsafeOnCompleted need not propagate ExecutionContext information. + + + Used with Task(of void) + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/ensureRedirect.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+sl5+win8+wp8+wpa81/ensureRedirect.xml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.IO.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.IO.dll new file mode 100644 index 0000000000000000000000000000000000000000..32dd41b780e3abf07d8bcbf35ba532ffc8d4618c GIT binary patch literal 22672 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.IO.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.IO.xml new file mode 100644 index 000000000..e83273427 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.IO.xml @@ -0,0 +1,51 @@ + + + + System.IO + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Found invalid data while decoding.. + + + + + The exception that is thrown when a data stream is in an invalid format. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Runtime.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..118fcce204348879c199c5ebba06751972f7f298 GIT binary patch literal 22176 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Runtime.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Runtime.xml new file mode 100644 index 000000000..93cb00d74 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Runtime.xml @@ -0,0 +1,56 @@ + + + + System.Runtime + + + + Defines a provider for progress updates. + The type of progress update value. + + + Reports a progress update. + The value of the updated progress. + + + Identities the async state machine type for this method. + + + Identities the state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + Gets the type that implements the state machine. + + + Initializes the attribute. + The type that implements the state machine. + + + + Allows you to obtain the method or property name of the caller to the method. + + + + + Allows you to obtain the line number in the source file at which the method is called. + + + + + Allows you to obtain the full path of the source file that contains the caller. + This is the file path at the time of compile. + + + + Identities the iterator state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Threading.Tasks.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..a60ab265715dca3e129eaf80adcca908b900ddc7 GIT binary patch literal 35016 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Threading.Tasks.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Threading.Tasks.xml new file mode 100644 index 000000000..b47921e5d --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/System.Threading.Tasks.xml @@ -0,0 +1,475 @@ + + + + System.Threading.Tasks + + + + Holds state related to the builder's IAsyncStateMachine. + This is a mutable struct. Be very delicate with it. + + + A reference to the heap-allocated state machine object associated with this builder. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument is null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + + Gets the Action to use with an awaiter's OnCompleted or UnsafeOnCompleted method. + On first invocation, the supplied state machine will be boxed. + + Specifies the type of the method builder used. + Specifies the type of the state machine used. + The builder. + The state machine. + An Action to provide to the awaiter. + + + Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext. + + + The context with which to run MoveNext. + + + The state machine whose MoveNext method should be invoked. + + + Initializes the runner. + The context with which to run MoveNext. + + + Invokes MoveNext under the provided context. + + + Cached delegate used with ExecutionContext.Run. + + + Invokes the MoveNext method on the supplied IAsyncStateMachine. + The IAsyncStateMachine machine instance. + + + Provides a base class used to cache tasks of a specific return type. + Specifies the type of results the cached tasks return. + + + + A singleton cache for this result type. + This may be null if there are no cached tasks for this TResult. + + + + Creates a non-disposable task. + The result for the task. + The cacheable task. + + + Creates a cache. + A task cache for this result type. + + + Gets a cached task if one exists. + The result for which we want a cached task. + A cached task if one exists; otherwise, null. + + + Provides a cache for Boolean tasks. + + + A true task. + + + A false task. + + + Gets a cached task for the Boolean result. + true or false + A cached task for the Boolean result. + + + Provides a cache for zero Int32 tasks. + + + The minimum value, inclusive, for which we want a cached task. + + + The maximum value, exclusive, for which we want a cached task. + + + The cache of Task{Int32}. + + + Creates an array of cached tasks for the values in the range [INCLUSIVE_MIN,EXCLUSIVE_MAX). + + + Gets a cached task for the zero Int32 result. + The integer value + A cached task for the Int32 result or null if not cached. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + Represents an asynchronous method builder. + + + A cached VoidTaskResult task used for builders that complete synchronously. + + + The generic builder object to which this non-generic instance delegates. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state. + + The builder is not initialized. + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + + Gets the for this builder. + The representing the builder's asynchronous operation. + The builder is not initialized. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder{TResult} is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + A cached task for default(TResult). + + + State related to the IAsyncStateMachine. + + + The lazily-initialized task. + Must be named m_task for debugger step-over to work correctly. + + + The lazily-initialized task completion source. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state with the specified result. + + The result to use to complete the task. + The task has already completed. + + + + Completes the builder by using either the supplied completed task, or by completing + the builder's previously accessed task using default(TResult). + + A task already completed with the value default(TResult). + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + This should only be invoked from within an asynchronous method, + and only by the debugger. + + + + + Gets a task for the specified result. This will either + be a cached or new task, never null. + + The result for which we need a task. + The completed task containing the result. + + + Gets the lazily-initialized TaskCompletionSource. + + + Gets the for this builder. + The representing the builder's asynchronous operation. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + + Provides a builder for asynchronous methods that return void. + This type is intended for compiler use only. + + + + The synchronization context associated with this operation. + + + State related to the IAsyncStateMachine. + + + An object used by the debugger to uniquely identify this builder. Lazily initialized. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Registers with UnobservedTaskException to suppress exception crashing. + + + Non-zero if PreventUnobservedTaskExceptions has already been invoked. + + + Initializes a new . + The initialized . + + + Initializes the . + The synchronizationContext associated with this operation. This may be null. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument was null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + Completes the method builder successfully. + + + Faults the method builder with an exception. + The exception that is the cause of this fault. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + + + Notifies the current synchronization context that the operation completed. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger and only in a single-threaded manner. + + + + + Represents state machines generated for asynchronous methods. + This type is intended for compiler use only. + + + + Moves the state machine to its next state. + + + Configures the state machine with a heap-allocated replica. + The heap-allocated replica. + + + + Represents an awaiter used to schedule continuations when an await operation completes. + + + + + Represents an operation that will schedule continuations when the operation completes. + + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + Unlike OnCompleted, UnsafeOnCompleted need not propagate ExecutionContext information. + + + Used with Task(of void) + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/ensureRedirect.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8+wp8+wpa81/ensureRedirect.xml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.IO.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.IO.dll new file mode 100644 index 0000000000000000000000000000000000000000..26cd551c3fcf93e045784b5091f9dfd5442bab3a GIT binary patch literal 21144 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 + + + System.IO + + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Runtime.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..118fcce204348879c199c5ebba06751972f7f298 GIT binary patch literal 22176 zcmeHv2{@Hq*YJG?^Gqb;F=Te!$4tmPWDJoI2M5P=IF7LaM~O-_5J{1QC}}QA(xenA z%_USQLMc@8@B5g0dY$Rnz4oy7-s@g_?X}n5H~Tf&5C(!EEci`M zLeP2eM1nB`{xwJj+1!#BxuMf+ccspw?Cwgr29u+4kyJ_$l^BlmCq_h2XgEI-jv5nz zBS+xO9bItYlmHT*i;G=$nzWMz1lgf5&|~elt~0H@hR{+RC=LkX1u4u^sR!`ji32}l z@I!KN0HUY*jU*ubXM|(`LHc_%3XIElGlK|12O-9I&OVSt$Q;mhM)9BobHE7)LCJIIpT-^-SMJH`efd*9!ov)*uUD;;!Xm6Qrz@24kckefyVH&Qw`Ela~>&;9f^ghv!%aLdbW-{*;;ey6A7wZE;6>AARf`g zj>aeeMlmZ%px2=Q&y=Lmm<=-#1;834hf(kkPf&7U0l+ku6{aW%R0jd!Z>%OB#%sVD z1U)2$2?_&H7BnZb5rVS8vj~a1(5U2yplGB7448??g3KxxNEgHrF_f`dWn&JW)&MU8 z9g;B(qxb?a83l^a=03GPtQVrxiBCR8@6L~L4oE`jFz)t}DM8OY9Lw=y{Y#iw; zl7^I?dNM=OC`B-(G#IcIbr!`8^`V#m#G(->&Vc$1=*xf!44BP;#~84g0pBtpgh6U4 zVU}Q+q4$`_7&GW62AQ&4SW5s^8E_32X_3l+sUQUjQ@ufWS`098NRg3-;JgqFSpuG- zz(`OiUMLV?oFEQT0G7hYLj!sURxpjRFt9Vz7%Kz2J6#Xq7ccYyVnQ(iDhMBfQ3$_~ zaDzz&g`~9N5G+kt7tlmQ9a9*q5lRSXkRAq>!s-I@FwoFc9-|}{8lS~vk^V_RARtr_ zjBNqNH;eItJds&U0gMFUMga%sk7|@0R zS2Can0}>gK%z#l0n81K30BS%x0n~%?0h9&rLKpQKNEi~YVL&OsV=mC93^WL!G6SYU zDQG;z0hxjn0q7urqR>MC%^)I3kA^4!Iztm6#TgP}#B~5%2H69+4vGiRmQm7$k>bgS zheAPUUq)O0&^G8Dl+1{yGU6ow@}n9Vu$uufD5Q)GfC^yc0L+25q9g%_FyIdbVFAP@ zBOGI9%n~Hu2(krp37H#A;D=N}K}(Pf5O54=hf!qYO<^tzFpmWoaREkNfJH695*A=7 z3$Tm@*vsIFcaDjmk;6&&fUq#g z#tB(|Nzu{1gz0R^g+`>2?1}!tO!K%lKn~1kV$kx zg#YiWni0c5NqbVbABpNf44+4ID#s2q2BV`N4DF45rEVn(4pKBh$fP@vc?$)vD=1)OEji6w@`kf7*!3}+;Vk`jL9 zw;PEX4SEeoL9Rq9=#(X}nMiRIYUo_&XGU*EiA^8-L8S zi3p@n!-)vnh+%(P>Q6IV$+WO}FMXz)=A>wUDmfCN`o|{CC=r3=pcwG3f13@YHXz3T zHv@E~5(7x##NV?foJpAEwdA__=0UHBR<^XqgF(ClO2=qA$V!8j#{o3)T zLnZi4M|qAH#FpmX0wS1CQ-?NJpkb{2@9jd*#ns+ zBeI4?RJkAkz%oQFEDKg9Boj$pSPA8Yf|T(N7OqY}ry)|IGCf5N5tCE}%%MOq>kX%$ z8rpyY_o7+7Vor{Z3?n8W3VRVk1UEwk=Mv)w6rd&wQoCA#vnTsgDbbWb8qSPD12POI6$oGcx^lZ#={UKjDpxrW5{6vc0@l? z7%M>wRwwA<2@r%sK^%+>Qz|jSKbQwdF^L#W@-j8E^CBPx0FyYTS0!Z3SXU}gv5)`? z;{HW?fsqH;2C)F!krV+Ki`bAz01?Feh9C)qv94$#cPcT`ff8X6?@wZAE7xEuB`%s# zd1fDq)D#0L3Si%-z=Oz{xl0S=>e?;4eg%E;q9eDZ>^>nC{Pn&3yfk$*30~?1buBNj zS@R-CfF&)Q6hH>^!fRm{@v-W7ExdnpB$X24L)0Q^`fCIdyk6NMIKKAss1)_zqSZLl6z@{bm9UqY0vJkPGAkpas|qxIi|LBjf;Z8vrdq z90`}OgFg{f$IO_k?6c41jNB=A$J8vIP5=*c@IwKrM2HILkiq_&1ZYNpy&{ECNETTT zfH_D7B_hC%Bn&)hpd1BYQ{e>mAs~tZeWHO88%ie_WngILPZRP3ap124J8=}) z?@*v{D3Z}e0vHhyU_dW{U=Jwz1G*GsHw1b`144|Hrh?K4oZlO3hzHP`8HG8Z5Y4Dd z24&~>*#$}fIW&+T4k0_M7|>@Vf2K`Muy32A;|9u6LHW5ctAkqF;70%>z%xdHyf*<* z2jLt-mkORlz^l2D{8gKHC;*g2JRcCW2~q=e>;R1*1_flSk)Xc_XM><%KplcA01y5? zU+|zb4l-f1fSX4r8l+M|JJF2(#sU}sMuP+=##kJu%OY~C_Y{$&5%#6aK=sIW=w#W!JfEUk8;epvODB%A*gieNFsd@FVi?pKi0$ktq zDa4%l5Pj%*T1A|yT4@noFcGF>YhgO3qzHpXq0s^wfTL>$)JERm@|Wu~xVr}Cn(Y{h z33MTj(Id<%EVBT5l?y=t=3@p3s{p$@F&elyf@qWo0x!&sB(eywIFkaxDG>n#30MqC zVHfzlxk`|NC6RoLfbg6->k6DIs=x^l9*J`@Gl3-*a}hLQEp-io4nc#UwFaPCujPf)a^Obw?UEgENMitk~4uA=t|6G8G7hzODJHg-k=cPTDoqFPi%494aJ+e z`XxS#x5vIdm&?L)(~o%i?9s25ixe?dsz8qa+Y!`Wke8uwC!``mz*{?WAS`S^5+xiM|Zq*Mv?p{CxNk)~> zQEY%COt3g$sW>-Q2)pQV&}%$ew3?mDr7xbey)aZdkZ+VBJK{1}VOS`6k&NcpQ)kOa z_5tJXvENTApJ>!N#RIz{^(C?Puq|v;WL0F5W)@7NMe3`m`BTI2;WJwk#KeL^VeQ}*u=NZMqtgtg8;FaG`&|Ph z>R(W%!2(Esmtr|#_8F2G*7@QBCL$0Q6ohl3XCFUe@32wB=GLiW*BUnpw(@`Ck>8r+ zS#RX}-lWeJqpW!GrE7Zah0&+?Tn2cB44W(?Peb=VX?mBHNUI!`?hGxi=i%DYDuEUq zj6a)!YgMV_py}d|@J>G4S*c=dASZaV>ebbj6}vHaL%R;2%op*tG9P|Hmwab^`Up9{ z0pGVp<~?g0`JG=!)bIzHdMVQQVfSmhRi6vR3m!E(^k(yq#h0%*3O+wNRDO|9x$2v; zmQaLe^iR0;d*$w;S9eXHX)oV7`dVlEQg;XyLhhOkZ)pnm&jha7+PW%X`!o{a@y(W^`QIT z66&ru7gGyHmTKmWxpwgD>GG=`4lUic@uuJX7cB#ZnqwC_wBU>V3F;M{6;-S3?UL-= z8U;9Fhgrs(t*XAKw>y_gD10+iZE4w*mlj3hYuVhyW}enb>8bfqWo%wru}x+<-KMZT z*TYG`LpXZUjPscC!z9=^Xht#l0#14TZlYr5X)DRKUEWTaZfTcS7_?w}%eI`kQ=ba2 zL?$;M7U+w^masYDm-nLq6A)2i5>Nt*oSv4lpC<6s1QIk)y2d^O{bir;PyCm#}v?+;ognYLYsH(%jt%Rt+H8c7Ns6Yo8D8U&Vs6eB?rvm?kHtm<0%g}dmULPLs zG`xFhUFy@#6(`IJqt`EP;u+9>e)Eiq=-ThDO!}!&#wl!v&PBv#w#uSvU2IUCnoPKd+A9@izbR@Wh~KyF)`Y_aLs| zQ|C{4@80W^#IH-*6xgK;JMKo(4+vAA$TTOan0=glf93T%@uLU!YCz5umh%tN!(JU` z)+)Q|l1Ac-W6RR=xbP&c9Qrv%*q}19ovH9jLwg)Gtk2#A6?(4a&Yp4mIL>BdD7ebrHna3nf^AfR70a`Ur5%Ma=`Ba2&66IdJpX*@llI{z zFN+t|#|&R91n(6oE2T!e4KLpFWSkS`)@VVTxYOigNpQL#FYv|~ZlNmjDoEedaWE`WH_X0UtjoOF%fXGV zpv0tp&i1jRe@~mL->`*YPZcZl)w1}&eb4Q3F1?9ISA4Q;(J|0Ha5~Pbbn$`AJA7Gg z1`SngK9~nH8f-1lU~6C=L^BAWP?K0D7y};jwAXJn31StC^I)-H!;l8^GqX+aM+8w= zCI(?({?4YM5sPi&KEdIE+}51VJl|#I1j-SEx+kjelG#Fw&{$3hcCe$50lRH8$Yg;o zHa+}Hs!QOCJZuP0M$S0FK{QyL(eEl&a(Og#kfZOOvndrwTNntV-I2BDPmd*>v7wF{y*Ej^ z-O0I_e5Z6jPW2my(>1rds@*Hv>LPo}xej4U-Cm#HYU}9d3!XWl?jKqQVPA#>9qP9tAZ^PkM>pJ+%Fj z{K*7=H}gX)?~eDCtaf`@fVMDK^BH+|{2^UE;>Y0}fj1w>Jr##kF5gn-M{>T#dUG5w9WEP29W7dqelmxNUO0@@6)fV4+N7dmU zq0|@z(Z`)nW@-qLB)GS}Ap?!6RtkmdP!zwExhlN7QuJ@jNeB?im!?yY5nd1`E$9H#To5 zqgnEfhU}KYPa{EMDnHisq>I1raVRNnka4-4`OTt*t#xg6>j_irq46VOyMrDpys&gR zk=FWF!4fZDmFBq0nez=s<$FkWHXO0#vj<%GZR4Z8r+TIKZX9b9_{@6FCEWS6MfO2! zXoXcEpS)sV`QA4Vm{V398sAjLXSIlpesI&ks`#I%ed126n;~AS?ts_4d$%@vVa&B(_MJW!_xxVMN_$ido)+a9&M8oN@AA5=^Z1AShqj0Nop(py zali>U<-bfc?sBiKUcFDOQyi66RU7|lTWkL^)W@#NS?o-=GOfFYTm)Y_R_=P!lNr*U z-0*JCCuX(Hn7*A#veJ>?zy5d=pO5DnW$B8n6Lu)v5z0=@IbW=|KS=fZO78c5Udx5@ zw&9j{v52UTHxpLG5)7589Jk&_8cuFz7wEXkPTVo{`26Az4%?EhYbmcSssB*7fx~p& zLl>&lNBDMaJju%wwU~VociXc?d0z}J1g<`%s@5~UIjwo6TW?|Hp0FxCyN6#B>W>O1 z`Y8?`Dp1s9juY`~GL#6Hqz`f2RHQ4k&(?$(W)#N~Pe&9B9H~EQHN;Pu*s30O@@L1& zTia!t0xuPcZ{ZI>8>&`&WSxH__4dq(+y1BHU6~%5;GL@WoG6X2JXMq%Bl2|D7J(RP zHT81Vh$7GJOY4gUH{F(c^g+V0Y2Qbi*P|#BC4*zbE%L2*5%0_P-XkbZa$ooKdSWkH z{N$V3f#vvBLZM9pB@+a?!U34Bun+inVKCkPIlsh|*Y{Vq$(+-F;{k ztCx?yl`IVSad+KoTdP9l({_FbCrUTp%o2NSP1V6Fox{DjbtjrqWhfi6o4Zf`rZA`d zEpbgbQc+shZV!zeA6kFbDqkoMIr;S5t`-Gxf_vpFYB60-8K$FU=iUi3fsPggNqh_` z-0_dC`oBMUm?wkYu<%^3F$9iTgarj8a8|~c2t15q0k9_p9tv$(Yt0`dF!L4Yelg(e#2NFp3)~oHB2XFSU3V0K)tQfv?y7Uf?Z?LdYFKo4@U^x1tYkVqu zGnc`=Am@#1Z(y|u7l-^aOfF75-1)ftyW@nKkkAo>w*ur?PI2wY>^2$8oQG7eC|sLB zl=Zob1D1mu%*f4zU+%as?b5t*h09P3!JNF^z|^ zIfTd9%U!q`!u1i>sArnsMz71*6Eg|ZWhUpQB^E`X%M60F53{^RPN`&GfTSltb_hHO z3w_h9Q6vl&4W=9HHCGvhEkayFe|l2Ia9+%-i^VPdkXYNo8n;UGm?NdFa>@Cjh?fo5 zq}arnSvKYNpLvy0MCaNCOle+VN{`KR{px1QgbT@+$h~IR)VlNEDhKG&#(#@@RRNX* zHWN6xlAQCK{ObC}0e=}`>Hv!XgQzZnK+s0~zuG`bXVCu;|L@gTk6OCUCGn9aPx)7T zrd}A9{or$0?4-HJ2g?5Mk^)Xwlky*@=cb3<- z7e3E;BD>}Ch?RVOc;<`v3yq{=iq8AGs3V0{JF+s&ZZcPd_ww-3R^oy3eVgiyj#uAi_jsGRZOX|34yKZT{k?9= zS+Nv3d75zm1*is+V2wbcjykx{w$K-B9TD)>iRl6T=wclm=`-Qww`0&b ze|{MD+p{W4WHjSE3`qB^rxp=s9|WkvI;yZP!-qngVF2)yIS54CT(^s4klZF}Oj2i?{;E!V~5MUOY$ z>QCq87*$dgi09Ax8CssVR?Oy}{t?Ywzvmy{b#p!y^}qQ|nAm>-Vy%4Byq>@G?2$_( zUv6;?58V!-PIa%1t?T$%QciC?U*Y}Sd@|7PfU#VK-A{*%<+=C6u0J_`M=r3lp42^B z>;J7hToHJ*Z#&4}K09pp{#{u(`-z?S#!VZj$u(m}+`dnnYekc@9k=nNuZ?4^?cQ3M zL}4>ht_o_f8aP?*ooH}^>5K2ycFQ3*uTN#lC-8hi)m=N=Iuwq*YtLCecK%D~B)aFq z^SgBur;M*e9k(pp9`WWYlXw3|NIvzJ<+^uQ^*aZ}YDbH8EZ?S8?mZrp82j;n?K0-u zlI31inSy#!?=E#-jms|{l^uSnD`Cem{&8|=`01@H7N;xtKXLN+>N)y-)wXLUsX7>A zRHXmG^C!lGt$Yqqx3Rf!FR#rsEfUbPy=s!G29J5ljY(cmbx7c>?N9VRs1x$k`dDnC zTHoa`?bRafyMFX{e6CrmzNkV#;EUq!FHO2akF|P2bzwRSxY5AmH{)L6&TeBY1(;ui z1x`u-x2y%g1wOSFD9)_~f9^w{TNMbv6{D*TYw1lnVze130Y=b&eAS|(|9DXWja*bf zgNq7a&Q%V5qw;!qDrBCYn+arXVw+L+FVR(-8y^4iKEHA#+4XBC;(274& z3%S8flm-iSBe(zRZ!z*d;rf?{c`kG(=oXy%N0|RC| zQ=hIoxh_rgsZq^#@7@f@O(LI))jZy0FH=3PvHJQsqo3*zPGJmdPFC;I-Pl%`tn$Ud zZKssh(nh_AfFzfT`+1Hnk=b--6#2U501&ezVkFPFs(-B0vXYnSPc^yXP<8Fy+7 z>a43m(|w*_5j=HC^x-Po9=&3oJ{g-j;q&I}E#5RVQWIZOdt^K6E%UDrUKMkHo|@Tj zZv&TA?&#?EJXrnX<%z(qhP^541|ALA_Sh(v2`C&X+YpreZmVCs&q=jSkKOls)yF9) z3=f1iDrBi-8S6MUbZ$1!xW;C8{b8w@8ZBouVk{oFT1CLyH)o%bqsFFZC(;+cI^Zyp zd!o*=C@in-^`rFdv;L?7upaioe{?C$UETQYV)PdW0SkOpe>kQ`eb`M>=)2WM-xN3;HxTz@pMj$FP@|6Tc} zxf|LNII|l_K6n+Qu}13s@YJ7|m-n*YURG~aQSzDm+`nF0t8}k7X;b!wZI(`}o^bA3 z-zH)!_SwL6n{(@liO_B%7QAA?J44aZhiAm&_ULu>1vHr(#wW^r7T9nko0gh6az_qr zsdRNKZ|&ggn4wIYQ3LjsQ)cW^+E%wTN0zE3WyyWqDZz-FtHE({hWGke2y{4da zxka3W){VA9hYlttN`JG?k*xe~C6oN+z*v3gIorKmA7bJ~`rqs1CkWe4J~|~69P_UF z+mCG@IFjF!msS6O2e5WKIyz#){dXGPFLZNotWS2AE{^9@mr5KoVXs;Ky}bFbcSCV{ zfqRsjgSEvK)24!0PxfT%(20bD4VS{hLzg2^G`2aQ!a(y zYzgP>G>cLmfa{CwGajlXSOV~ZqyGEeF16X+F&ma3jm7Qh4n2RgKJ+DNSekdDKIAKl zU;7@`tgc_3tel1T?W z*I@MiwUFB@;DWO~i3YeLuM0htkULsqP5N3`sZ z6c^GqC!B?-skGzdFOJ2v+pIn8>YwOr!U#4DN3P#^1I1*1*38pcFL4tr>g zCFAyziudm~<*l~M7)^7aeop&*XYAY&PjrLK98pQOIihnWQ4eRJKBl@n{IJgCu4& z3iC&g1|6lz%rPS>yuhhJN67$BktA66M1j;yliuXPjzNK4{X%yL78hHxbB_S zpMQP0LY%8Ej&G|zuK$O?-Y?&h$a_L*uDtD~>=1qP_ks1nwkkf?8{ZPI#-1|@RQ4Pa zbdkprBuzv`a>Vbk3G7%;ggt6tbDm+}^i8g2oR96#>$09QeYv~pQ8er>M=!D9YJLC3 zD&=mytgrfNU&~LctWvpW(U*VMphwO8V%f-xfJ=u_4LG*l@ppgJU1>7+UMsX8 z#pEb$KXXd@4sfdLFRjvc@D1TsLiT5~b?YrfuWJOa*&M#=udb*3eXF$ntJ|Hd-a}q~ z!S@aKWP3iow@>)m|LsM*S*sCozrd=nwyL@Y!y^43xQO>Bw1G8R#IQz@J3=WraLO(? zC2N5}ngScn+LI_D!k-$XPPR5v)~K12i&_9FkO;oU{Tt?}6Zi;d&KyNP8v9%3D9gL_ zm0VpnUgs@OiNY8bmJ~}-PJKAi{DpA2g{iCJ=QsE8CGe@M*8`hEI==J_#b3Hveqd?$ zc-=s#t2?XmO1e4!_X{rDn@4>4x5hRb8=Dlo@LD|SHNJMSR-UYzEp5=0_f~a%(v74~ zIvdt37yFc-uwth(RISUi_={RX3h8OZnb0>k?|r?U2vKZdb6IJFmH|v@ZkC5)-Ps9j zXXHWk74j3Ss?~m;eY-=W*3W0(b9dvu;d}Xk+1n>W{E}W?U%|0cu1l|f$%-id!gW&N zjr&Uu8GK9HkQI@Gx=imk(&mM6_h ze0IV~f^uoN6YA(8upHj4KT5KS?;R_*t{i|dviEA1=c3xprk($sA`{MUWS->N2hQ>xnI%<&iI278^N9v8P=U)4>1 z<=$}r6?|o)`JMfDu6l3BzCwv5x@vVTtC{eFTt!Y=&j#7##oAA8)RJJm_)Pox1D~u{ zv~(MOu;8?T1A>e54hS5N^}6ObDeMVitUivvu0H>)N}ueU#ChFE`j#(Vp#P>j}xb(Bry3JPxC6*2!HyHbA@T!0GW1~8=n=0`zws6QX zPbqC8@WYpzR$rK+MpNQ7OFe{W`zAV-Uh&>n{dP26@34hN{JDOExL88BQ%;M-Zf4fR zF#E#=2j$*ws{ej~fLD55utQ$LBb)t0!cfZYprYjCJYQ1Xl|*Vh36`cmgPoIcy60V- zE$%o*A2?+Ld!D#QSzhv9FCt@jRR&IFr2sA@HCWK}K-1>@{r9p`Pg8PVa+Vkj3T)xr zxG%FyC}C!S5(S)EJnxi1xwMbhrIr8l5>aCncKgN6*DRXw3$8@|cD?$)yxt8g4DewK za=m+MRRKUk)xo>y+nx@tzLPgLArFG4# zuxC<^=LBqayw41u>t<5#WnRlEDrkUP)|GxQ?Yv6uC2!t{MxS^ga>?a0S(#O0d&O!` zwm3Kn@N$BT`E&(vMzJ2jH>#S(oN zUBl~UweyW0YriD(*}cu8gEf@+L#UnlEU_veK)KN=I6>*_nfK>j*S@{4))k{ zXZsjINTF`$Gn0+)(pqE1Tr5B{ zK~J(OU&7MDJhQtz7;GyDYi1IFs-H@LX|Vp>mJ*!5tH4Sy`!oUIc1QMv5E?DNd^#d5 zI+dF};f>^K&#Q|jfHUgZdpV2^Y7slkiqyvlb^8|2#94}Qzx0>!%|%}4)x!~J;4;dJUKNeR|QPlV{B|0QQPV>HN%h0!-=Z0jiF2k_bvyP|M zOBy{uM_&-GYovdJS}I*SpI^{%l%;$vf0@fsW-V&jF7kqQ4=r=0$2dpYU4gr(pnG+0 z_T-_EoA3NWdJfqX)Gq7v*=%7pfVlNovD4s+~neGgi8+`d<@6$Cmxq*(qV^Xp&Q=dip&=<uadYL4!2ayNapn5xZ}e6ZFaSAfE}SUs(!-(Tq%Shb@k&|&GM@Rdaak3?_Z z*Q%srCF?)yU2T3xA-1UMbhUIZ5?-t%mG@ILUue`KBi_Ye=+fDg3r93ML|!PWh+ZCU zEJ(VtDDwH}* zDtIeb<<{B6uUzjD{OU*6(M7Z$XA_t46%O`S3T)3b+L#(%HddC%3{6xg#lL>)85Eyslpt|=*P6!h lb6la6jWT;`5_neFKFueOHytUBSwmE?8ha*@5ekgt{{#8Rm%9J} literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Runtime.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Runtime.xml new file mode 100644 index 000000000..93cb00d74 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Runtime.xml @@ -0,0 +1,56 @@ + + + + System.Runtime + + + + Defines a provider for progress updates. + The type of progress update value. + + + Reports a progress update. + The value of the updated progress. + + + Identities the async state machine type for this method. + + + Identities the state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + Gets the type that implements the state machine. + + + Initializes the attribute. + The type that implements the state machine. + + + + Allows you to obtain the method or property name of the caller to the method. + + + + + Allows you to obtain the line number in the source file at which the method is called. + + + + + Allows you to obtain the full path of the source file that contains the caller. + This is the file path at the time of compile. + + + + Identities the iterator state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Threading.Tasks.dll b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..a60ab265715dca3e129eaf80adcca908b900ddc7 GIT binary patch literal 35016 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Threading.Tasks.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Threading.Tasks.xml new file mode 100644 index 000000000..b47921e5d --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/System.Threading.Tasks.xml @@ -0,0 +1,475 @@ + + + + System.Threading.Tasks + + + + Holds state related to the builder's IAsyncStateMachine. + This is a mutable struct. Be very delicate with it. + + + A reference to the heap-allocated state machine object associated with this builder. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument is null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + + Gets the Action to use with an awaiter's OnCompleted or UnsafeOnCompleted method. + On first invocation, the supplied state machine will be boxed. + + Specifies the type of the method builder used. + Specifies the type of the state machine used. + The builder. + The state machine. + An Action to provide to the awaiter. + + + Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext. + + + The context with which to run MoveNext. + + + The state machine whose MoveNext method should be invoked. + + + Initializes the runner. + The context with which to run MoveNext. + + + Invokes MoveNext under the provided context. + + + Cached delegate used with ExecutionContext.Run. + + + Invokes the MoveNext method on the supplied IAsyncStateMachine. + The IAsyncStateMachine machine instance. + + + Provides a base class used to cache tasks of a specific return type. + Specifies the type of results the cached tasks return. + + + + A singleton cache for this result type. + This may be null if there are no cached tasks for this TResult. + + + + Creates a non-disposable task. + The result for the task. + The cacheable task. + + + Creates a cache. + A task cache for this result type. + + + Gets a cached task if one exists. + The result for which we want a cached task. + A cached task if one exists; otherwise, null. + + + Provides a cache for Boolean tasks. + + + A true task. + + + A false task. + + + Gets a cached task for the Boolean result. + true or false + A cached task for the Boolean result. + + + Provides a cache for zero Int32 tasks. + + + The minimum value, inclusive, for which we want a cached task. + + + The maximum value, exclusive, for which we want a cached task. + + + The cache of Task{Int32}. + + + Creates an array of cached tasks for the values in the range [INCLUSIVE_MIN,EXCLUSIVE_MAX). + + + Gets a cached task for the zero Int32 result. + The integer value + A cached task for the Int32 result or null if not cached. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + Represents an asynchronous method builder. + + + A cached VoidTaskResult task used for builders that complete synchronously. + + + The generic builder object to which this non-generic instance delegates. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state. + + The builder is not initialized. + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + + Gets the for this builder. + The representing the builder's asynchronous operation. + The builder is not initialized. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder{TResult} is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + A cached task for default(TResult). + + + State related to the IAsyncStateMachine. + + + The lazily-initialized task. + Must be named m_task for debugger step-over to work correctly. + + + The lazily-initialized task completion source. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state with the specified result. + + The result to use to complete the task. + The task has already completed. + + + + Completes the builder by using either the supplied completed task, or by completing + the builder's previously accessed task using default(TResult). + + A task already completed with the value default(TResult). + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + This should only be invoked from within an asynchronous method, + and only by the debugger. + + + + + Gets a task for the specified result. This will either + be a cached or new task, never null. + + The result for which we need a task. + The completed task containing the result. + + + Gets the lazily-initialized TaskCompletionSource. + + + Gets the for this builder. + The representing the builder's asynchronous operation. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + + Provides a builder for asynchronous methods that return void. + This type is intended for compiler use only. + + + + The synchronization context associated with this operation. + + + State related to the IAsyncStateMachine. + + + An object used by the debugger to uniquely identify this builder. Lazily initialized. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Registers with UnobservedTaskException to suppress exception crashing. + + + Non-zero if PreventUnobservedTaskExceptions has already been invoked. + + + Initializes a new . + The initialized . + + + Initializes the . + The synchronizationContext associated with this operation. This may be null. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument was null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + Completes the method builder successfully. + + + Faults the method builder with an exception. + The exception that is the cause of this fault. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + + + Notifies the current synchronization context that the operation completed. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger and only in a single-threaded manner. + + + + + Represents state machines generated for asynchronous methods. + This type is intended for compiler use only. + + + + Moves the state machine to its next state. + + + Configures the state machine with a heap-allocated replica. + The heap-allocated replica. + + + + Represents an awaiter used to schedule continuations when an await operation completes. + + + + + Represents an operation that will schedule continuations when the operation completes. + + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + Unlike OnCompleted, UnsafeOnCompleted need not propagate ExecutionContext information. + + + Used with Task(of void) + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/ensureRedirect.xml b/packages/Microsoft.Bcl.1.1.10/lib/portable-net40+win8/ensureRedirect.xml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net45+win8+wp8+wpa81/_._ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net45+win8+wp8+wpa81/_._ new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net45+win8+wpa81/_._ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net45+win8+wpa81/_._ new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net451+win81+wpa81/_._ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net451+win81+wpa81/_._ new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-net451+win81/_._ b/packages/Microsoft.Bcl.1.1.10/lib/portable-net451+win81/_._ new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/portable-win81+wp81+wpa81/_._ b/packages/Microsoft.Bcl.1.1.10/lib/portable-win81+wp81+wpa81/_._ new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.IO.dll b/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.IO.dll new file mode 100644 index 0000000000000000000000000000000000000000..32dd41b780e3abf07d8bcbf35ba532ffc8d4618c GIT binary patch literal 22672 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.IO.xml b/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.IO.xml new file mode 100644 index 000000000..e83273427 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.IO.xml @@ -0,0 +1,51 @@ + + + + System.IO + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Found invalid data while decoding.. + + + + + The exception that is thrown when a data stream is in an invalid format. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.Runtime.dll b/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..18e255b25f01e4fd9e10d8ce7aaaa43ac1a2db50 GIT binary patch literal 39080 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 + + + System.Runtime + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Argument must be of type {0}.. + + + + + Looks up a localized string similar to The last element of an eight element tuple must be a Tuple.. + + + + + Defines methods to support the comparison of objects for structural equality. + + + + + Determines whether an object is structurally equal to the current instance. + + The object to compare with the current instance. + An object that determines whether the current instance and other are equal. + true if the two objects are equal; otherwise, false. + + + + Returns a hash code for the current instance. + + An object that computes the hash code of the current object. + The hash code for the current instance. + + + + Supports the structural comparison of collection objects. + + + + + Determines whether the current collection object precedes, occurs in the same position as, or follows another object in the sort order. + + The object to compare with the current instance. + An object that compares members of the current collection object with the corresponding members of other. + An integer that indicates the relationship of the current collection object to other. + + This instance and other are not the same type. + + + + + Encapsulates a method that has five parameters and returns a value of the type specified by the TResult parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + Defines a provider for progress updates. + The type of progress update value. + + + Reports a progress update. + The value of the updated progress. + + + Identities the async state machine type for this method. + + + Identities the state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + Gets the type that implements the state machine. + + + Initializes the attribute. + The type that implements the state machine. + + + + Allows you to obtain the method or property name of the caller to the method. + + + + + Allows you to obtain the line number in the source file at which the method is called. + + + + + Allows you to obtain the full path of the source file that contains the caller. + This is the file path at the time of compile. + + + + Identities the iterator state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + + Helper so we can call some tuple methods recursively without knowing the underlying types. + + + + + Provides static methods for creating tuple objects. + + + + + Creates a new 1-tuple, or singleton. + + The type of the only component of the tuple. + The value of the only component of the tuple. + A tuple whose value is (item1). + + + + Creates a new 3-tuple, or pair. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + An 2-tuple (pair) whose value is (item1, item2). + + + + Creates a new 3-tuple, or triple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + An 3-tuple (triple) whose value is (item1, item2, item3). + + + + Creates a new 4-tuple, or quadruple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + An 4-tuple (quadruple) whose value is (item1, item2, item3, item4). + + + + Creates a new 5-tuple, or quintuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + An 5-tuple (quintuple) whose value is (item1, item2, item3, item4, item5). + + + + Creates a new 6-tuple, or sextuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + An 6-tuple (sextuple) whose value is (item1, item2, item3, item4, item5, item6). + + + + Creates a new 7-tuple, or septuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + The type of the seventh component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + The value of the seventh component of the tuple. + An 7-tuple (septuple) whose value is (item1, item2, item3, item4, item5, item6, item7). + + + + Creates a new 8-tuple, or octuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + The type of the seventh component of the tuple. + The type of the eighth component of the tuple. + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + The value of the seventh component of the tuple. + The value of the eighth component of the tuple. + An 8-tuple (octuple) whose value is (item1, item2, item3, item4, item5, item6, item7, item8). + + + + Represents a 1-tuple, or singleton. + + The type of the tuple's only component. + + + + Initializes a new instance of the class. + + The value of the current tuple object's single component. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the tuple object's single component. + + + The value of the current tuple object's single component. + + + + + Represents an 2-tuple, or pair. + + The type of the first component of the tuple. + The type of the second component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Represents an 3-tuple, or triple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Represents an 4-tuple, or quadruple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Gets the value of the current tuple object's fourth component. + + + The value of the current tuple object's fourth component. + + + + + Represents an 5-tuple, or quintuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Gets the value of the current tuple object's fourth component. + + + The value of the current tuple object's fourth component. + + + + + Gets the value of the current tuple object's fifth component. + + + The value of the current tuple object's fifth component. + + + + + Represents an 6-tuple, or sextuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Gets the value of the current tuple object's fourth component. + + + The value of the current tuple object's fourth component. + + + + + Gets the value of the current tuple object's fifth component. + + + The value of the current tuple object's fifth component. + + + + + Gets the value of the current tuple object's sixth component. + + + The value of the current tuple object's sixth component. + + + + + Represents an 7-tuple, or septuple. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + The type of the seventh component of the tuple. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + The value of the seventh component of the tuple. + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Gets the value of the current tuple object's fourth component. + + + The value of the current tuple object's fourth component. + + + + + Gets the value of the current tuple object's fifth component. + + + The value of the current tuple object's fifth component. + + + + + Gets the value of the current tuple object's sixth component. + + + The value of the current tuple object's sixth component. + + + + + Gets the value of the current tuple object's seventh component. + + + The value of the current tuple object's seventh component. + + + + + Represents an n-tuple, where n is 8 or greater. + + The type of the first component of the tuple. + The type of the second component of the tuple. + The type of the third component of the tuple. + The type of the fourth component of the tuple. + The type of the fifth component of the tuple. + The type of the sixth component of the tuple. + The type of the seventh component of the tuple. + Any generic Tuple object that defines the types of the tuple's remaining components. + + + + Initializes a new instance of the class. + + The value of the first component of the tuple. + The value of the second component of the tuple. + The value of the third component of the tuple. + The value of the fourth component of the tuple. + The value of the fifth component of the tuple. + The value of the sixth component of the tuple. + The value of the seventh component of the tuple. + Any generic Tuple object that contains the values of the tuple's remaining components. + + rest is not a generic Tuple object. + + + + + Returns a value that indicates whether the current tuple object is equal to a specified object. + + The object to compare with this instance. + true if the current instance is equal to the specified object; otherwise, false. + + + + Calculates the hash code for the current tuple object. + + A 32-bit signed integer hash code. + + + + Returns a string that represents the value of this tuple instance. + + The string representation of this tuple object. + + + + Gets the value of the current tuple object's first component. + + + The value of the current tuple object's first component. + + + + + Gets the value of the current tuple object's second component. + + + The value of the current tuple object's second component. + + + + + Gets the value of the current tuple object's third component. + + + The value of the current tuple object's third component. + + + + + Gets the value of the current tuple object's fourth component. + + + The value of the current tuple object's fourth component. + + + + + Gets the value of the current tuple object's fifth component. + + + The value of the current tuple object's fifth component. + + + + + Gets the value of the current tuple object's sixth component. + + + The value of the current tuple object's sixth component. + + + + + Gets the value of the current tuple object's seventh component. + + + The value of the current tuple object's seventh component. + + + + + Gets the current tuple object's remaining components. + + + The value of the current tuple object's remaining components. + + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.Threading.Tasks.dll b/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..a089d474db56cd4f61044339689819946c04e381 GIT binary patch literal 164544 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.Threading.Tasks.xml b/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.Threading.Tasks.xml new file mode 100644 index 000000000..6c770122e --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/System.Threading.Tasks.xml @@ -0,0 +1,8969 @@ + + + + System.Threading.Tasks + + + + Represents one or more errors that occur during application execution. + + is used to consolidate multiple failures into a single, throwable + exception object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with + a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error + message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + The argument + is null. + + + + Initializes a new instance of the class with + references to the inner exceptions that are the cause of this exception. + + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with + references to the inner exceptions that are the cause of this exception. + + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with a specified error + message and references to the inner exceptions that are the cause of this exception. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with a specified error + message and references to the inner exceptions that are the cause of this exception. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Allocates a new aggregate exception with the specified message and list of inner exceptions. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Returns the that is the root cause of this exception. + + + + + Invokes a handler on each contained by this . + + The predicate to execute for each exception. The predicate accepts as an + argument the to be processed and returns a Boolean to indicate + whether the exception was handled. + + Each invocation of the returns true or false to indicate whether the + was handled. After all invocations, if any exceptions went + unhandled, all unhandled exceptions will be put into a new + which will be thrown. Otherwise, the method simply returns. If any + invocations of the throws an exception, it will halt the processing + of any more exceptions and immediately propagate the thrown exception as-is. + + An exception contained by this was not handled. + The argument is + null. + + + + Flattens an instances into a single, new instance. + + A new, flattened . + + If any inner exceptions are themselves instances of + , this method will recursively flatten all of them. The + inner exceptions returned in the new + will be the union of all of the the inner exceptions from exception tree rooted at the provided + instance. + + + + + Creates and returns a string representation of the current . + + A string representation of the current exception. + + + + Gets a read-only collection of the instances that caused the + current exception. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to One or more errors occurred.. + + + + + Looks up a localized string similar to An element of innerExceptions was null.. + + + + + Looks up a localized string similar to {0}{1}---> (Inner Exception #{2}) {3}{4}{5}. + + + + + Looks up a localized string similar to No tokens were supplied.. + + + + + Looks up a localized string similar to The CancellationTokenSource associated with this CancellationToken has been disposed.. + + + + + Looks up a localized string similar to The CancellationTokenSource has been disposed.. + + + + + Looks up a localized string similar to The SyncRoot property may not be used for the synchronization of concurrent collections.. + + + + + Looks up a localized string similar to The array is multidimensional, or the type parameter for the set cannot be cast automatically to the type of the destination array.. + + + + + Looks up a localized string similar to The index is equal to or greater than the length of the array, or the number of elements in the dictionary is greater than the available space from index to the end of the destination array.. + + + + + Looks up a localized string similar to The capacity argument must be greater than or equal to zero.. + + + + + Looks up a localized string similar to The concurrencyLevel argument must be positive.. + + + + + Looks up a localized string similar to The index argument is less than zero.. + + + + + Looks up a localized string similar to TKey is a reference type and item.Key is null.. + + + + + Looks up a localized string similar to The key already existed in the dictionary.. + + + + + Looks up a localized string similar to The source argument contains duplicate keys.. + + + + + Looks up a localized string similar to The key was of an incorrect type for this dictionary.. + + + + + Looks up a localized string similar to The value was of an incorrect type for this dictionary.. + + + + + Looks up a localized string similar to The lazily-initialized type does not have a public, parameterless constructor.. + + + + + Looks up a localized string similar to ValueFactory returned null.. + + + + + Looks up a localized string similar to The spinCount argument must be in the range 0 to {0}, inclusive.. + + + + + Looks up a localized string similar to There are too many threads currently waiting on the event. A maximum of {0} waiting threads are supported.. + + + + + Looks up a localized string similar to The event has been disposed.. + + + + + Looks up a localized string similar to The operation was canceled.. + + + + + Looks up a localized string similar to The condition argument is null.. + + + + + Looks up a localized string similar to The timeout must represent a value between -1 and Int32.MaxValue, inclusive.. + + + + + Looks up a localized string similar to The specified TaskContinuationOptions combined LongRunning and ExecuteSynchronously. Synchronous continuations should not be long running.. + + + + + Looks up a localized string similar to The specified TaskContinuationOptions excluded all continuation kinds.. + + + + + Looks up a localized string similar to (Internal)An attempt was made to create a LongRunning SelfReplicating task.. + + + + + Looks up a localized string similar to The value needs to translate in milliseconds to -1 (signifying an infinite timeout), 0 or a positive integer less than or equal to Int32.MaxValue.. + + + + + Looks up a localized string similar to The value needs to be either -1 (signifying an infinite timeout), 0 or a positive integer.. + + + + + Looks up a localized string similar to A task may only be disposed if it is in a completion state (RanToCompletion, Faulted or Canceled).. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.LongRunning in calls to FromAsync.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.PreferFairness in calls to FromAsync.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.SelfReplicating in calls to FromAsync.. + + + + + Looks up a localized string similar to FromAsync was called with a TaskManager that had already shut down.. + + + + + Looks up a localized string similar to The tasks argument contains no tasks.. + + + + + Looks up a localized string similar to It is invalid to exclude specific continuation kinds for continuations off of multiple tasks.. + + + + + Looks up a localized string similar to The tasks argument included a null value.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task that was already started.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a continuation task.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task not bound to a delegate, such as the task returned from an asynchronous method.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task that has already completed.. + + + + + Looks up a localized string similar to Start may not be called on a task that was already started.. + + + + + Looks up a localized string similar to Start may not be called on a continuation task.. + + + + + Looks up a localized string similar to Start may not be called on a task with null action.. + + + + + Looks up a localized string similar to Start may not be called on a promise-style task.. + + + + + Looks up a localized string similar to Start may not be called on a task that has completed.. + + + + + Looks up a localized string similar to The task has been disposed.. + + + + + Looks up a localized string similar to The tasks array included at least one null element.. + + + + + Looks up a localized string similar to The awaited task has not yet completed.. + + + + + Looks up a localized string similar to A task was canceled.. + + + + + Looks up a localized string similar to The exceptions collection was empty.. + + + + + Looks up a localized string similar to The exceptions collection included at least one null element.. + + + + + Looks up a localized string similar to A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.. + + + + + Looks up a localized string similar to (Internal)Expected an Exception or an IEnumerable<Exception>. + + + + + Looks up a localized string similar to ExecuteTask may not be called for a task which was already executed.. + + + + + Looks up a localized string similar to ExecuteTask may not be called for a task which was previously queued to a different TaskScheduler.. + + + + + Looks up a localized string similar to The current SynchronizationContext may not be used as a TaskScheduler.. + + + + + Looks up a localized string similar to The TryExecuteTaskInline call to the underlying scheduler succeeded, but the task body was not invoked.. + + + + + Looks up a localized string similar to An exception was thrown by a TaskScheduler.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.SelfReplicating for a Task<TResult>.. + + + + + Looks up a localized string similar to {Not yet computed}. + + + + + Looks up a localized string similar to A task's Exception may only be set directly if the task was created without a function.. + + + + + Looks up a localized string similar to An attempt was made to transition a task to a final state when it had already completed.. + + + + + Represents a thread-safe collection of keys and values. + + The type of the keys in the dictionary. + The type of the values in the dictionary. + + All public and protected members of are thread-safe and may be used + concurrently from multiple threads. + + + + + Initializes a new instance of the + class that is empty, has the default concurrency level, has the default initial capacity, and + uses the default comparer for the key type. + + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level and capacity, and uses the default + comparer for the key type. + + The estimated number of threads that will update the + concurrently. + The initial number of elements that the + can contain. + is + less than 1. + is less than + 0. + + + + Initializes a new instance of the + class that contains elements copied from the specified , has the default concurrency + level, has the default initial capacity, and uses the default comparer for the key type. + + The whose elements are copied to + the new + . + is a null reference + (Nothing in Visual Basic). + contains one or more + duplicate keys. + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level and capacity, and uses the specified + . + + The + implementation to use when comparing keys. + is a null reference + (Nothing in Visual Basic). + + + + Initializes a new instance of the + class that contains elements copied from the specified , has the default concurrency level, has the default + initial capacity, and uses the specified + . + + The whose elements are copied to + the new + . + The + implementation to use when comparing keys. + is a null reference + (Nothing in Visual Basic). -or- + is a null reference (Nothing in Visual Basic). + + + + + Initializes a new instance of the + class that contains elements copied from the specified , + has the specified concurrency level, has the specified initial capacity, and uses the specified + . + + The estimated number of threads that will update the + concurrently. + The whose elements are copied to the new + . + The implementation to use + when comparing keys. + + is a null reference (Nothing in Visual Basic). + -or- + is a null reference (Nothing in Visual Basic). + + + is less than 1. + + contains one or more duplicate keys. + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level, has the specified initial capacity, and + uses the specified . + + The estimated number of threads that will update the + concurrently. + The initial number of elements that the + can contain. + The + implementation to use when comparing keys. + + is less than 1. -or- + is less than 0. + + is a null reference + (Nothing in Visual Basic). + + + + Attempts to add the specified key and value to the . + + The key of the element to add. + The value of the element to add. The value can be a null reference (Nothing + in Visual Basic) for reference types. + true if the key/value pair was added to the + successfully; otherwise, false. + is null reference + (Nothing in Visual Basic). + The + contains too many elements. + + + + Determines whether the contains the specified + key. + + The key to locate in the . + true if the contains an element with + the specified key; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Attempts to remove and return the the value with the specified key from the + . + + The key of the element to remove and return. + When this method returns, contains the object removed from the + or the default value of + if the operation failed. + true if an object was removed successfully; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Removes the specified key from the dictionary if it exists and returns its associated value. + If matchValue flag is set, the key will be removed only if is associated with a particular + value. + + The key to search for and remove if it exists. + The variable into which the removed value, if found, is stored. + Whether removal of the key is conditional on its value. + The conditional value to compare against if is true + + + + + Attempts to get the value associated with the specified key from the . + + The key of the value to get. + When this method returns, contains the object from + the + with the spedified key or the default value of + , if the operation failed. + true if the key was found in the ; + otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Compares the existing value for the specified key with a specified value, and if they’re equal, + updates the key with a third value. + + The key whose value is compared with and + possibly replaced. + The value that replaces the value of the element with if the comparison results in equality. + The value that is compared to the value of the element with + . + true if the value with was equal to and replaced with ; otherwise, + false. + is a null + reference. + + + + Removes all keys and values from the . + + + + + Copies the elements of the to an array of + type , starting at the + specified array index. + + The one-dimensional array of type + that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying + begins. + is a null reference + (Nothing in Visual Basic). + is less than + 0. + is equal to or greater than + the length of the . -or- The number of elements in the source + is greater than the available space from to the end of the destination + . + + + + Copies the key and value pairs stored in the to a + new array. + + A new array containing a snapshot of key and value pairs copied from the . + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToPairs. + + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToEntries. + + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToObjects. + + + + Returns an enumerator that iterates through the . + An enumerator for the . + + The enumerator returned from the dictionary is safe to use concurrently with + reads and writes to the dictionary, however it does not represent a moment-in-time snapshot + of the dictionary. The contents exposed through the enumerator may contain modifications + made to the dictionary after was called. + + + + + Shared internal implementation for inserts and updates. + If key exists, we always return false; and if updateIfExists == true we force update with value; + If key doesn't exist, we always add value and return true; + + + + + Adds a key/value pair to the + if the key does not already exist. + + The key of the element to add. + The function used to generate a value for the key + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The value for the key. This will be either the existing value for the key if the + key is already in the dictionary, or the new value for the key as returned by valueFactory + if the key was not in the dictionary. + + + + Adds a key/value pair to the + if the key does not already exist. + + The key of the element to add. + the value to be added, if the key does not already exist + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The value for the key. This will be either the existing value for the key if the + key is already in the dictionary, or the new value if the key was not in the dictionary. + + + + Adds a key/value pair to the if the key does not already + exist, or updates a key/value pair in the if the key + already exists. + + The key to be added or whose value should be updated + The function used to generate a value for an absent key + The function used to generate a new value for an existing key + based on the key's existing value + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The new value for the key. This will be either be the result of addValueFactory (if the key was + absent) or the result of updateValueFactory (if the key was present). + + + + Adds a key/value pair to the if the key does not already + exist, or updates a key/value pair in the if the key + already exists. + + The key to be added or whose value should be updated + The value to be added for an absent key + The function used to generate a new value for an existing key based on + the key's existing value + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The new value for the key. This will be either be the result of addValueFactory (if the key was + absent) or the result of updateValueFactory (if the key was present). + + + + Adds the specified key and value to the . + + The object to use as the key of the element to add. + The object to use as the value of the element to add. + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + + An element with the same key already exists in the . + + + + Removes the element with the specified key from the . + + The key of the element to remove. + true if the element is successfully remove; otherwise false. This method also returns + false if + was not found in the original . + + is a null reference + (Nothing in Visual Basic). + + + + Adds the specified value to the + with the specified key. + + The + structure representing the key and value to add to the . + The of is null. + The + contains too many elements. + An element with the same key already exists in the + + + + + Determines whether the + contains a specific key and value. + + The + structure to locate in the . + true if the is found in the ; otherwise, false. + + + + Removes a key and value from the dictionary. + + The + structure representing the key and value to remove from the . + true if the key and value represented by is successfully + found and removed; otherwise, false. + The Key property of is a null reference (Nothing in Visual Basic). + + + Returns an enumerator that iterates through the . + An enumerator for the . + + The enumerator returned from the dictionary is safe to use concurrently with + reads and writes to the dictionary, however it does not represent a moment-in-time snapshot + of the dictionary. The contents exposed through the enumerator may contain modifications + made to the dictionary after was called. + + + + + Adds the specified key and value to the dictionary. + + The object to use as the key. + The object to use as the value. + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + + is of a type that is not assignable to the key type of the . -or- + is of a type that is not assignable to , + the type of values in the . + -or- A value with the same key already exists in the . + + + + + Gets whether the contains an + element with the specified key. + + The key to locate in the . + true if the contains + an element with the specified key; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + Provides an for the + . + An for the . + + + + Removes the element with the specified key from the . + + The key of the element to remove. + is a null reference + (Nothing in Visual Basic). + + + + Copies the elements of the to an array, starting + at the specified array index. + + The one-dimensional array that is the destination of the elements copied from + the . The array must have zero-based + indexing. + The zero-based index in at which copying + begins. + is a null reference + (Nothing in Visual Basic). + is less than + 0. + is equal to or greater than + the length of the . -or- The number of elements in the source + is greater than the available space from to the end of the destination + . + + + + Replaces the internal table with a larger one. To prevent multiple threads from resizing the + table as a result of races, the table of buckets that was deemed too small is passed in as + an argument to GrowTable(). GrowTable() obtains a lock, and then checks whether the bucket + table has been replaced in the meantime or not. + + Reference to the bucket table that was deemed too small. + + + + Computes the bucket and lock number for a particular key. + + + + + Acquires all locks for this hash table, and increments locksAcquired by the number + of locks that were successfully acquired. The locks are acquired in an increasing + order. + + + + + Acquires a contiguous range of locks for this hash table, and increments locksAcquired + by the number of locks that were successfully acquired. The locks are acquired in an + increasing order. + + + + + Releases a contiguous range of locks. + + + + + Gets a collection containing the keys in the dictionary. + + + + + Gets a collection containing the values in the dictionary. + + + + + A helper method for asserts. + + + + + Get the data array to be serialized + + + + + Construct the dictionary from a previously seiralized one + + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The value associated with the specified key. If the specified key is not found, a get + operation throws a + , and a set operation creates a new + element with the specified key. + is a null reference + (Nothing in Visual Basic). + The property is retrieved and + + does not exist in the collection. + + + + Gets the number of key/value pairs contained in the . + + The dictionary contains too many + elements. + The number of key/value paris contained in the . + Count has snapshot semantics and represents the number of items in the + at the moment when Count was accessed. + + + + Gets a value that indicates whether the is empty. + + true if the is empty; otherwise, + false. + + + + Gets a collection containing the keys in the . + + An containing the keys in the + . + + + + Gets a collection containing the values in the . + + An containing the values in + the + . + + + + Gets a value indicating whether the dictionary is read-only. + + true if the is + read-only; otherwise, false. For , this property always returns + false. + + + + Gets a value indicating whether the has a fixed size. + + true if the has a + fixed size; otherwise, false. For , this property always + returns false. + + + + Gets a value indicating whether the is read-only. + + true if the is + read-only; otherwise, false. For , this property always + returns false. + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + + Gets an containing the values in the . + + An containing the values in the . + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The value associated with the specified key, or a null reference (Nothing in Visual Basic) + if is not in the dictionary or is of a type that is + not assignable to the key type of the . + is a null reference + (Nothing in Visual Basic). + + A value is being assigned, and is of a type that is not assignable to the + key type of the . -or- A value is being + assigned, and is of a type that is not assignable to the value type + of the + + + + + Gets a value indicating whether access to the is + synchronized with the SyncRoot. + + true if access to the is synchronized + (thread safe); otherwise, false. For , this property always + returns false. + + + + Gets an object that can be used to synchronize access to the . This property is not supported. + + The SyncRoot property is not supported. + + + + The number of concurrent writes for which to optimize by default. + + + + + A node in a singly-linked list representing a particular hash table bucket. + + + + + A private class to represent enumeration over the dictionary that implements the + IDictionaryEnumerator interface. + + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + Represents an asynchronous method builder. + + + A cached VoidTaskResult task used for builders that complete synchronously. + + + The generic builder object to which this non-generic instance delegates. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state. + + The builder is not initialized. + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + + Gets the for this builder. + The representing the builder's asynchronous operation. + The builder is not initialized. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + Holds state related to the builder's IAsyncStateMachine. + This is a mutable struct. Be very delicate with it. + + + A reference to the heap-allocated state machine object associated with this builder. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument is null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + + Gets the Action to use with an awaiter's OnCompleted or UnsafeOnCompleted method. + On first invocation, the supplied state machine will be boxed. + + Specifies the type of the method builder used. + Specifies the type of the state machine used. + The builder. + The state machine. + An Action to provide to the awaiter. + + + Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext. + + + The context with which to run MoveNext. + + + The state machine whose MoveNext method should be invoked. + + + Initializes the runner. + The context with which to run MoveNext. + + + Invokes MoveNext under the provided context. + + + Cached delegate used with ExecutionContext.Run. + + + Invokes the MoveNext method on the supplied IAsyncStateMachine. + The IAsyncStateMachine machine instance. + + + + Provides a builder for asynchronous methods that return void. + This type is intended for compiler use only. + + + + The synchronization context associated with this operation. + + + State related to the IAsyncStateMachine. + + + An object used by the debugger to uniquely identify this builder. Lazily initialized. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Registers with UnobservedTaskException to suppress exception crashing. + + + Non-zero if PreventUnobservedTaskExceptions has already been invoked. + + + Initializes a new . + The initialized . + + + Initializes the . + The synchronizationContext associated with this operation. This may be null. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument was null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + Completes the method builder successfully. + + + Faults the method builder with an exception. + The exception that is the cause of this fault. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + + + Notifies the current synchronization context that the operation completed. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger and only in a single-threaded manner. + + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder{TResult} is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + A cached task for default(TResult). + + + State related to the IAsyncStateMachine. + + + The lazily-initialized task. + Must be named m_task for debugger step-over to work correctly. + + + The lazily-initialized task completion source. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state with the specified result. + + The result to use to complete the task. + The task has already completed. + + + + Completes the builder by using either the supplied completed task, or by completing + the builder's previously accessed task using default(TResult). + + A task already completed with the value default(TResult). + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + This should only be invoked from within an asynchronous method, + and only by the debugger. + + + + + Gets a task for the specified result. This will either + be a cached or new task, never null. + + The result for which we need a task. + The completed task containing the result. + + + Gets the lazily-initialized TaskCompletionSource. + + + Gets the for this builder. + The representing the builder's asynchronous operation. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + Provides a base class used to cache tasks of a specific return type. + Specifies the type of results the cached tasks return. + + + + A singleton cache for this result type. + This may be null if there are no cached tasks for this TResult. + + + + Creates a non-disposable task. + The result for the task. + The cacheable task. + + + Creates a cache. + A task cache for this result type. + + + Gets a cached task if one exists. + The result for which we want a cached task. + A cached task if one exists; otherwise, null. + + + Provides a cache for Boolean tasks. + + + A true task. + + + A false task. + + + Gets a cached task for the Boolean result. + true or false + A cached task for the Boolean result. + + + Provides a cache for zero Int32 tasks. + + + The minimum value, inclusive, for which we want a cached task. + + + The maximum value, exclusive, for which we want a cached task. + + + The cache of Task{Int32}. + + + Creates an array of cached tasks for the values in the range [INCLUSIVE_MIN,EXCLUSIVE_MAX). + + + Gets a cached task for the zero Int32 result. + The integer value + A cached task for the Int32 result or null if not cached. + + + + Represents state machines generated for asynchronous methods. + This type is intended for compiler use only. + + + + Moves the state machine to its next state. + + + Configures the state machine with a heap-allocated replica. + The heap-allocated replica. + + + + Represents an awaiter used to schedule continuations when an await operation completes. + + + + + Represents an operation that will schedule continuations when the operation completes. + + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + Unlike OnCompleted, UnsafeOnCompleted need not propagate ExecutionContext information. + + + Used with Task(of void) + + + + An interface similar to the one added in .NET 4.0. + + + + The exception that is thrown in a thread upon cancellation of an operation that the thread was executing. + + + Initializes the exception. + + + Initializes the exception. + The error message that explains the reason for the exception. + + + Initializes the exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + Initializes the exception. + A cancellation token associated with the operation that was canceled. + + + Initializes the exception. + The error message that explains the reason for the exception. + A cancellation token associated with the operation that was canceled. + + + Initializes the exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + A cancellation token associated with the operation that was canceled. + + + Gets a token associated with the operation that was canceled. + + + + A dummy replacement for the .NET internal class StackCrawlMark. + + + + + Propogates notification that operations should be canceled. + + + + A may be created directly in an unchangeable canceled or non-canceled state + using the CancellationToken's constructors. However, to have a CancellationToken that can change + from a non-canceled to a canceled state, + CancellationTokenSource must be used. + CancellationTokenSource exposes the associated CancellationToken that may be canceled by the source through its + Token property. + + + Once canceled, a token may not transition to a non-canceled state, and a token whose + is false will never change to one that can be canceled. + + + All members of this struct are thread-safe and may be used concurrently from multiple threads. + + + + + + Internal constructor only a CancellationTokenSource should create a CancellationToken + + + + + Initializes the CancellationToken. + + + The canceled state for the token. + + + Tokens created with this constructor will remain in the canceled state specified + by the parameter. If is false, + both and will be false. + If is true, + both and will be true. + + + + + Registers a delegate that will be called when this CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + A Boolean value that indicates whether to capture + the current SynchronizationContext and use it + when invoking the . + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The state to pass to the when the delegate is invoked. This may be null. + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The state to pass to the when the delegate is invoked. This may be null. + A Boolean value that indicates whether to capture + the current SynchronizationContext and use it + when invoking the . + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Determines whether the current CancellationToken instance is equal to the + specified token. + + The other CancellationToken to which to compare this + instance. + True if the instances are equal; otherwise, false. Two tokens are equal if they are associated + with the same CancellationTokenSource or if they were both constructed + from public CancellationToken constructors and their values are equal. + + + + Determines whether the current CancellationToken instance is equal to the + specified . + + The other object to which to compare this instance. + True if is a CancellationToken + and if the two instances are equal; otherwise, false. Two tokens are equal if they are associated + with the same CancellationTokenSource or if they were both constructed + from public CancellationToken constructors and their values are equal. + An associated CancellationTokenSource has been disposed. + + + + Serves as a hash function for a CancellationToken. + + A hash code for the current CancellationToken instance. + + + + Determines whether two CancellationToken instances are equal. + + The first instance. + The second instance. + True if the instances are equal; otherwise, false. + An associated CancellationTokenSource has been disposed. + + + + Determines whether two CancellationToken instances are not equal. + + The first instance. + The second instance. + True if the instances are not equal; otherwise, false. + An associated CancellationTokenSource has been disposed. + + + + Throws a OperationCanceledException if + this token has had cancellation requested. + + + This method provides functionality equivalent to: + + if (token.IsCancellationRequested) + throw new OperationCanceledException(token); + + + The token has had cancellation requested. + The associated CancellationTokenSource has been disposed. + + + + Returns an empty CancellationToken value. + + + The value returned by this property will be non-cancelable by default. + + + + + Gets whether cancellation has been requested for this token. + + Whether cancellation has been requested for this token. + + + This property indicates whether cancellation has been requested for this token, + either through the token initially being construted in a canceled state, or through + calling Cancel + on the token's associated . + + + If this property is true, it only guarantees that cancellation has been requested. + It does not guarantee that every registered handler + has finished executing, nor that cancellation requests have finished propagating + to all registered handlers. Additional synchronization may be required, + particularly in situations where related objects are being canceled concurrently. + + + + + + Gets whether this token is capable of being in the canceled state. + + + If CanBeCanceled returns false, it is guaranteed that the token will never transition + into a canceled state, meaning that will never + return true. + + + + + Gets a that is signaled when the token is canceled. + + Accessing this property causes a WaitHandle + to be instantiated. It is preferable to only use this property when necessary, and to then + dispose the associated instance at the earliest opportunity (disposing + the source will dispose of this allocated handle). The handle should not be closed or disposed directly. + + The associated CancellationTokenSource has been disposed. + + + + Represents a callback delegate that has been registered with a CancellationToken. + + + To unregister a callback, dispose the corresponding Registration instance. + + + + + Attempts to deregister the item. If it's already being run, this may fail. + Entails a full memory fence. + + True if the callback was found and deregistered, false otherwise. + + + + Disposes of the registration and unregisters the target callback from the associated + CancellationToken. + If the target callback is currently executing this method will wait until it completes, except + in the degenerate cases where a callback method deregisters itself. + + + + + Determines whether two CancellationTokenRegistration + instances are equal. + + The first instance. + The second instance. + True if the instances are equal; otherwise, false. + + + + Determines whether two CancellationTokenRegistration instances are not equal. + + The first instance. + The second instance. + True if the instances are not equal; otherwise, false. + + + + Determines whether the current CancellationTokenRegistration instance is equal to the + specified . + + The other object to which to compare this instance. + True, if both this and are equal. False, otherwise. + Two CancellationTokenRegistration instances are equal if + they both refer to the output of a single call to the same Register method of a + CancellationToken. + + + + + Determines whether the current CancellationToken instance is equal to the + specified . + + The other CancellationTokenRegistration to which to compare this instance. + True, if both this and are equal. False, otherwise. + Two CancellationTokenRegistration instances are equal if + they both refer to the output of a single call to the same Register method of a + CancellationToken. + + + + + Serves as a hash function for a CancellationTokenRegistration.. + + A hash code for the current CancellationTokenRegistration instance. + + + + Signals to a that it should be canceled. + + + + is used to instantiate a + (via the source's Token property) + that can be handed to operations that wish to be notified of cancellation or that can be used to + register asynchronous operations for cancellation. That token may have cancellation requested by + calling to the source's Cancel + method. + + + All members of this class, except Dispose, are thread-safe and may be used + concurrently from multiple threads. + + + + + The ID of the thread currently executing the main body of CTS.Cancel() + this helps us to know if a call to ctr.Dispose() is running 'within' a cancellation callback. + This is updated as we move between the main thread calling cts.Cancel() and any syncContexts that are used to + actually run the callbacks. + + + + Initializes the . + + + + + Communicates a request for cancellation. + + + + The associated will be + notified of the cancellation and will transition to a state where + IsCancellationRequested returns true. + Any callbacks or cancelable operations + registered with the will be executed. + + + Cancelable operations and callbacks registered with the token should not throw exceptions. + However, this overload of Cancel will aggregate any exceptions thrown into a , + such that one callback throwing an exception will not prevent other registered callbacks from being executed. + + + The that was captured when each callback was registered + will be reestablished when the callback is invoked. + + + An aggregate exception containing all the exceptions thrown + by the registered callbacks on the associated . + This has been disposed. + + + + Communicates a request for cancellation. + + + + The associated will be + notified of the cancellation and will transition to a state where + IsCancellationRequested returns true. + Any callbacks or cancelable operations + registered with the will be executed. + + + Cancelable operations and callbacks registered with the token should not throw exceptions. + If is true, an exception will immediately propagate out of the + call to Cancel, preventing the remaining callbacks and cancelable operations from being processed. + If is false, this overload will aggregate any + exceptions thrown into a , + such that one callback throwing an exception will not prevent other registered callbacks from being executed. + + + The that was captured when each callback was registered + will be reestablished when the callback is invoked. + + + Specifies whether exceptions should immediately propagate. + An aggregate exception containing all the exceptions thrown + by the registered callbacks on the associated . + This has been disposed. + + + + Releases the resources used by this . + + + This method is not thread-safe for any other concurrent calls. + + + + + Throws an exception if the source has been disposed. + + + + + InternalGetStaticSource() + + Whether the source should be set. + A static source to be shared among multiple tokens. + + + + Registers a callback object. If cancellation has already occurred, the + callback will have been run by the time this method returns. + + + + + + + + + + Invoke the Canceled event. + + + The handlers are invoked synchronously in LIFO order. + + + + + Creates a CancellationTokenSource that will be in the canceled state + when any of the source tokens are in the canceled state. + + The first CancellationToken to observe. + The second CancellationToken to observe. + A CancellationTokenSource that is linked + to the source tokens. + A CancellationTokenSource associated with + one of the source tokens has been disposed. + + + + Creates a CancellationTokenSource that will be in the canceled state + when any of the source tokens are in the canceled state. + + The CancellationToken instances to observe. + A CancellationTokenSource that is linked + to the source tokens. + is null. + A CancellationTokenSource associated with + one of the source tokens has been disposed. + + + + Gets whether cancellation has been requested for this CancellationTokenSource. + + Whether cancellation has been requested for this CancellationTokenSource. + + + This property indicates whether cancellation has been requested for this token source, such as + due to a call to its + Cancel method. + + + If this property returns true, it only guarantees that cancellation has been requested. It does not + guarantee that every handler registered with the corresponding token has finished executing, nor + that cancellation requests have finished propagating to all registered handlers. Additional + synchronization may be required, particularly in situations where related objects are being + canceled concurrently. + + + + + + A simple helper to determine whether cancellation has finished. + + + + + A simple helper to determine whether disposal has occured. + + + + + The ID of the thread that is running callbacks. + + + + + Gets the CancellationToken + associated with this . + + The CancellationToken + associated with this . + The token source has been + disposed. + + + + + + + + + + + + + + The currently executing callback + + + + + A helper class for collating the various bits of information required to execute + cancellation callbacks. + + + + + InternalExecuteCallbackSynchronously_GeneralPath + This will be called on the target synchronization context, however, we still need to restore the required execution context + + + + + A sparsely populated array. Elements can be sparse and some null, but this allows for + lock-free additions and growth, and also for constant time removal (by nulling out). + + The kind of elements contained within. + + + + Allocates a new array with the given initial size. + + How many array slots to pre-allocate. + + + + Adds an element in the first available slot, beginning the search from the tail-to-head. + If no slots are available, the array is grown. The method doesn't return until successful. + + The element to add. + Information about where the add happened, to enable O(1) deregistration. + + + + The tail of the doubly linked list. + + + + + A struct to hold a link to the exact spot in an array an element was inserted, enabling + constant time removal later on. + + + + + A fragment of a sparsely populated array, doubly linked. + + The kind of elements contained within. + + + + Provides lazy initialization routines. + + + These routines avoid needing to allocate a dedicated, lazy-initialization instance, instead using + references to ensure targets have been initialized as they are accessed. + + + + + Initializes a target reference type with the type's default constructor if the target has not + already been initialized. + + The refence type of the reference to be initialized. + A reference of type to initialize if it has not + already been initialized. + The initialized reference of type . + Type does not have a default + constructor. + + Permissions to access the constructor of type were missing. + + + + This method may only be used on reference types. To ensure initialization of value + types, see other overloads of EnsureInitialized. + + + This method may be used concurrently by multiple threads to initialize . + In the event that multiple threads access this method concurrently, multiple instances of + may be created, but only one will be stored into . In such an occurrence, this method will not dispose of the + objects that were not stored. If such objects must be disposed, it is up to the caller to determine + if an object was not used and to then dispose of the object appropriately. + + + + + + Initializes a target reference type using the specified function if it has not already been + initialized. + + The reference type of the reference to be initialized. + The reference of type to initialize if it has not + already been initialized. + The invoked to initialize the + reference. + The initialized reference of type . + Type does not have a + default constructor. + returned + null. + + + This method may only be used on reference types, and may + not return a null reference (Nothing in Visual Basic). To ensure initialization of value types or + to allow null reference types, see other overloads of EnsureInitialized. + + + This method may be used concurrently by multiple threads to initialize . + In the event that multiple threads access this method concurrently, multiple instances of + may be created, but only one will be stored into . In such an occurrence, this method will not dispose of the + objects that were not stored. If such objects must be disposed, it is up to the caller to determine + if an object was not used and to then dispose of the object appropriately. + + + + + + Initialize the target using the given delegate (slow path). + + The reference type of the reference to be initialized. + The variable that need to be initialized + The delegate that will be executed to initialize the target + The initialized variable + + + + Initializes a target reference or value type with its default constructor if it has not already + been initialized. + + The type of the reference to be initialized. + A reference or value of type to initialize if it + has not already been initialized. + A reference to a boolean that determines whether the target has already + been initialized. + A reference to an object used as the mutually exclusive lock for initializing + . + The initialized value of type . + + + + Initializes a target reference or value type with a specified function if it has not already been + initialized. + + The type of the reference to be initialized. + A reference or value of type to initialize if it + has not already been initialized. + A reference to a boolean that determines whether the target has already + been initialized. + A reference to an object used as the mutually exclusive lock for initializing + . + The invoked to initialize the + reference or value. + The initialized value of type . + + + + Ensure the target is initialized and return the value (slow path). This overload permits nulls + and also works for value type targets. Uses the supplied function to create the value. + + The type of target. + A reference to the target to be initialized. + A reference to a location tracking whether the target has been initialized. + A reference to a location containing a mutual exclusive lock. + + The to invoke in order to produce the lazily-initialized value. + + The initialized object. + + + + Provides a slimmed down version of . + + + All public and protected members of are thread-safe and may be used + concurrently from multiple threads, with the exception of Dispose, which + must only be used when all other operations on the have + completed, and Reset, which should only be used when no other threads are + accessing the event. + + + + + Initializes a new instance of the + class with an initial state of nonsignaled. + + + + + Initializes a new instance of the + class with a Boolen value indicating whether to set the intial state to signaled. + + true to set the initial state signaled; false to set the initial state + to nonsignaled. + + + + Initializes a new instance of the + class with a Boolen value indicating whether to set the intial state to signaled and a specified + spin count. + + true to set the initial state to signaled; false to set the initial state + to nonsignaled. + The number of spin waits that will occur before falling back to a true + wait. + is less than + 0 or greater than the maximum allowed value. + + + + Initializes the internal state of the event. + + Whether the event is set initially or not. + The spin count that decides when the event will block. + + + + Helper to ensure the lock object is created before first use. + + + + + This method lazily initializes the event object. It uses CAS to guarantee that + many threads racing to call this at once don't result in more than one event + being stored and used. The event will be signaled or unsignaled depending on + the state of the thin-event itself, with synchronization taken into account. + + True if a new event was created and stored, false otherwise. + + + + Sets the state of the event to signaled, which allows one or more threads waiting on the event to + proceed. + + + + + Private helper to actually perform the Set. + + Indicates whether we are calling Set() during cancellation. + The object has been canceled. + + + + Sets the state of the event to nonsignaled, which causes threads to block. + + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + Blocks the current thread until the current is set. + + + The maximum number of waiters has been exceeded. + + + The caller of this method blocks indefinitely until the current instance is set. The caller will + return immediately if the event is currently in a set state. + + + + + Blocks the current thread until the current receives a signal, + while observing a . + + The to + observe. + + The maximum number of waiters has been exceeded. + + was + canceled. + + The caller of this method blocks indefinitely until the current instance is set. The caller will + return immediately if the event is currently in a set state. + + + + + Blocks the current thread until the current is set, using a + to measure the time interval. + + A that represents the number of milliseconds + to wait, or a that represents -1 milliseconds to wait indefinitely. + + true if the was set; otherwise, + false. + is a negative + number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater + than . + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + to measure the time interval, while observing a . + + A that represents the number of milliseconds + to wait, or a that represents -1 milliseconds to wait indefinitely. + + The to + observe. + true if the was set; otherwise, + false. + is a negative + number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater + than . + was canceled. + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + 32-bit signed integer to measure the time interval. + + The number of milliseconds to wait, or (-1) to wait indefinitely. + true if the was set; otherwise, + false. + is a + negative number other than -1, which represents an infinite time-out. + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + 32-bit signed integer to measure the time interval, while observing a . + + The number of milliseconds to wait, or (-1) to wait indefinitely. + The to + observe. + true if the was set; otherwise, + false. + is a + negative number other than -1, which represents an infinite time-out. + + The maximum number of waiters has been exceeded. + + was canceled. + + + + Releases all resources used by the current instance of . + + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + When overridden in a derived class, releases the unmanaged resources used by the + , and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + Throw ObjectDisposedException if the MRES is disposed + + + + + Private helper method to wake up waiters when a cancellationToken gets canceled. + + + + + Private helper method for updating parts of a bit-string state value. + Mainly called from the IsSet and Waiters properties setters + + + Note: the parameter types must be int as CompareExchange cannot take a Uint + + The new value + The mask used to set the bits + + + + Private helper method - performs Mask and shift, particular helpful to extract a field from a packed word. + eg ExtractStatePortionAndShiftRight(0x12345678, 0xFF000000, 24) => 0x12, ie extracting the top 8-bits as a simple integer + + ?? is there a common place to put this rather than being private to MRES? + + + + + + + + + Performs a Mask operation, but does not perform the shift. + This is acceptable for boolean values for which the shift is unnecessary + eg (val & Mask) != 0 is an appropriate way to extract a boolean rather than using + ((val & Mask) >> shiftAmount) == 1 + + ?? is there a common place to put this rather than being private to MRES? + + + + + + + Helper function to measure and update the wait time + + The first time (in Ticks) observed when the wait started. + The orginal wait timeoutout in milliseconds. + The new wait time in milliseconds, -1 if the time expired, -2 if overflow in counters + has occurred. + + + + Gets the underlying object for this . + + The underlying event object fore this . + + Accessing this property forces initialization of an underlying event object if one hasn't + already been created. To simply wait on this , + the public Wait methods should be preferred. + + + + + Gets whether the event is set. + + true if the event has is set; otherwise, false. + + + + Gets the number of spin waits that will be occur before falling back to a true wait. + + + + + How many threads are waiting. + + + + + Provides support for spin-based waiting. + + + + encapsulates common spinning logic. On single-processor machines, yields are + always used instead of busy waits, and on computers with Intel™ processors employing Hyper-Threading™ + technology, it helps to prevent hardware thread starvation. SpinWait encapsulates a good mixture of + spinning and true yielding. + + + is a value type, which means that low-level code can utilize SpinWait without + fear of unnecessary allocation overheads. SpinWait is not generally useful for ordinary applications. + In most cases, you should use the synchronization classes provided by the .NET Framework, such as + . For most purposes where spin waiting is required, however, + the type should be preferred over the System.Threading.Thread.SpinWait method. + + + While SpinWait is designed to be used in concurrent applications, it is not designed to be + used from multiple threads concurrently. SpinWait's members are not thread-safe. If multiple + threads must spin, each should use its own instance of SpinWait. + + + + + + Performs a single spin. + + + This is typically called in a loop, and may change in behavior based on the number of times a + has been called thus far on this instance. + + + + + Resets the spin counter. + + + This makes and behave as though no calls + to had been issued on this instance. If a instance + is reused many times, it may be useful to reset it to avoid yielding too soon. + + + + + Spins until the specified condition is satisfied. + + A delegate to be executed over and over until it returns true. + The argument is null. + + + + Spins until the specified condition is satisfied or until the specified timeout is expired. + + A delegate to be executed over and over until it returns true. + + A that represents the number of milliseconds to wait, + or a TimeSpan that represents -1 milliseconds to wait indefinitely. + True if the condition is satisfied within the timeout; otherwise, false + The argument is null. + is a negative number + other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than + . + + + + Spins until the specified condition is satisfied or until the specified timeout is expired. + + A delegate to be executed over and over until it returns true. + The number of milliseconds to wait, or (-1) to wait indefinitely. + True if the condition is satisfied within the timeout; otherwise, false + The argument is null. + is a + negative number other than -1, which represents an infinite time-out. + + + + Gets the number of times has been called on this instance. + + + + + Gets whether the next call to will yield the processor, triggering a + forced context switch. + + Whether the next call to will yield the processor, triggering a + forced context switch. + + On a single-CPU machine, always yields the processor. On machines with + multiple CPUs, may yield after an unspecified number of calls. + + + + + A helper class to get the number of preocessors, it updates the numbers of processors every sampling interval + + + + + Gets the number of available processors + + + + + Gets whether the current machine has only a single processor. + + + + + Represents an asynchronous operation that produces a result at some time in the future. + + + The type of the result produced by this . + + + + instances may be created in a variety of ways. The most common approach is by + using the task's property to retrieve a instance that can be used to create tasks for several + purposes. For example, to create a that runs a function, the factory's StartNew + method may be used: + + // C# + var t = Task<int>.Factory.StartNew(() => GenerateResult()); + - or - + var t = Task.Factory.StartNew(() => GenerateResult()); + + ' Visual Basic + Dim t = Task<int>.Factory.StartNew(Function() GenerateResult()) + - or - + Dim t = Task.Factory.StartNew(Function() GenerateResult()) + + + + The class also provides constructors that initialize the task but that do not + schedule it for execution. For performance reasons, the StartNew method should be the + preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation + and scheduling must be separated, the constructors may be used, and the task's + Start + method may then be used to schedule the task for execution at a later time. + + + All members of , except for + Dispose, are thread-safe + and may be used from multiple threads concurrently. + + + + + + Represents an asynchronous operation. + + + + instances may be created in a variety of ways. The most common approach is by + using the Task type's property to retrieve a instance that can be used to create tasks for several + purposes. For example, to create a that runs an action, the factory's StartNew + method may be used: + + // C# + var t = Task.Factory.StartNew(() => DoAction()); + + ' Visual Basic + Dim t = Task.Factory.StartNew(Function() DoAction()) + + + + The class also provides constructors that initialize the Task but that do not + schedule it for execution. For performance reasons, TaskFactory's StartNew method should be the + preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation + and scheduling must be separated, the constructors may be used, and the task's + method may then be used to schedule the task for execution at a later time. + + + All members of , except for , are thread-safe + and may be used from multiple threads concurrently. + + + For operations that return values, the class + should be used. + + + For developers implementing custom debuggers, several internal and private members of Task may be + useful (these may change from release to release). The Int32 m_taskId field serves as the backing + store for the property, however accessing this field directly from a debugger may be + more efficient than accessing the same value through the property's getter method (the + s_taskIdCounter Int32 counter is used to retrieve the next available ID for a Task). Similarly, the + Int32 m_stateFlags field stores information about the current lifecycle stage of the Task, + information also accessible through the property. The m_action System.Object + field stores a reference to the Task's delegate, and the m_stateObject System.Object field stores the + async state passed to the Task by the developer. Finally, for debuggers that parse stack frames, the + InternalWait method serves a potential marker for when a Task is entering a wait operation. + + + + + + A type initializer that runs with the appropriate permissions. + + + + + Initializes a new with the specified action. + + The delegate that represents the code to execute in the Task. + The argument is null. + + + + Initializes a new with the specified action and CancellationToken. + + The delegate that represents the code to execute in the Task. + The CancellationToken + that will be assigned to the new Task. + The argument is null. + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action and creation options. + + The delegate that represents the code to execute in the task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action and creation options. + + The delegate that represents the code to execute in the task. + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action and state. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + + The argument is null. + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + The that will be assigned to the new task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + An internal constructor used by the factory methods on task and its descendent(s). + This variant does not capture the ExecutionContext; it is up to the caller to do that. + + An action to execute. + Optional state to pass to the action. + Parent of Task. + A CancellationToken for the task. + A task scheduler under which the task will run. + Options to control its execution. + Internal options to control its execution + + + + Common logic used by the following internal ctors: + Task() + Task(object action, object state, Task parent, TaskCreationOptions options, TaskScheduler taskScheduler) + + ASSUMES THAT m_creatingTask IS ALREADY SET. + + + Action for task to execute. + Object to which to pass to action (may be null) + Task scheduler on which to run thread (only used by continuation tasks). + A CancellationToken for the Task. + Options to customize behavior of Task. + Internal options to customize behavior of Task. + + + + Checks if we registered a CT callback during construction, and deregisters it. + This should be called when we know the registration isn't useful anymore. Specifically from Finish() if the task has completed + successfully or with an exception. + + + + + Captures the ExecutionContext so long as flow isn't suppressed. + + A stack crawl mark pointing to the frame of the caller. + + + + Internal function that will be called by a new child task to add itself to + the children list of the parent (this). + + Since a child task can only be created from the thread executing the action delegate + of this task, reentrancy is neither required nor supported. This should not be called from + anywhere other than the task construction/initialization codepaths. + + + + + Starts the , scheduling it for execution to the current TaskScheduler. + + + A task may only be started and run only once. Any attempts to schedule a task a second time + will result in an exception. + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Starts the , scheduling it for execution to the specified TaskScheduler. + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + The TaskScheduler with which to associate + and execute this task. + + + The argument is null. + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Runs the synchronously on the current TaskScheduler. + + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + Tasks executed with will be associated with the current TaskScheduler. + + + If the target scheduler does not support running this Task on the current thread, the Task will + be scheduled for execution on the scheduler, and the current thread will block until the + Task has completed execution. + + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Runs the synchronously on the scheduler provided. + + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + If the target scheduler does not support running this Task on the current thread, the Task will + be scheduled for execution on the scheduler, and the current thread will block until the + Task has completed execution. + + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + The parameter + is null. + The scheduler on which to attempt to run this task inline. + + + + Throws an exception if the task has been disposed, and hence can no longer be accessed. + + The task has been disposed. + + + + Sets the internal completion event. + + + + + Disposes the , releasing all of its unmanaged resources. + + + Unlike most of the members of , this method is not thread-safe. + Also, may only be called on a that is in one of + the final states: RanToCompletion, + Faulted, or + Canceled. + + + The exception that is thrown if the is not in + one of the final states: RanToCompletion, + Faulted, or + Canceled. + + + + + Disposes the , releasing all of its unmanaged resources. + + + A Boolean value that indicates whether this method is being called due to a call to . + + + Unlike most of the members of , this method is not thread-safe. + + + + + Schedules the task for execution. + + If true, TASK_STATE_STARTED bit is turned on in + an atomic fashion, making sure that TASK_STATE_CANCELED does not get set + underneath us. If false, TASK_STATE_STARTED bit is OR-ed right in. This + allows us to streamline things a bit for StartNew(), where competing cancellations + are not a problem. + + + + Adds an exception to the list of exceptions this task has thrown. + + An object representing either an Exception or a collection of Exceptions. + + + + Returns a list of exceptions by aggregating the holder's contents. Or null if + no exceptions have been thrown. + + Whether to include a TCE if cancelled. + An aggregate exception, or null if no exceptions have been caught. + + + + Throws an aggregate exception if the task contains exceptions. + + + + + Checks whether this is an attached task, and whether we are being called by the parent task. + And sets the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag based on that. + + This is meant to be used internally when throwing an exception, and when WaitAll is gathering + exceptions for tasks it waited on. If this flag gets set, the implicit wait on children + will skip exceptions to prevent duplication. + + This should only be called when this task has completed with an exception + + + + + + Signals completion of this particular task. + + The bUserDelegateExecuted parameter indicates whether this Finish() call comes following the + full execution of the user delegate. + + If bUserDelegateExecuted is false, it mean user delegate wasn't invoked at all (either due to + a cancellation request, or because this task is a promise style Task). In this case, the steps + involving child tasks (i.e. WaitForChildren) will be skipped. + + + + + + FinishStageTwo is to be executed as soon as we known there are no more children to complete. + It can happen i) either on the thread that originally executed this task (if no children were spawned, or they all completed by the time this task's delegate quit) + ii) or on the thread that executed the last child. + + + + + Final stage of the task completion code path. Notifies the parent (if any) that another of its childre are done, and runs continuations. + This function is only separated out from FinishStageTwo because these two operations are also needed to be called from CancellationCleanupLogic() + + + + + This is called by children of this task when they are completed. + + + + + This is to be called just before the task does its final state transition. + It traverses the list of exceptional children, and appends their aggregate exceptions into this one's exception list + + + + + Special purpose Finish() entry point to be used when the task delegate throws a ThreadAbortedException + This makes a note in the state flags so that we avoid any costly synchronous operations in the finish codepath + such as inlined continuations + + + Indicates whether the ThreadAbortException was added to this task's exception holder. + This should always be true except for the case of non-root self replicating task copies. + + Whether the delegate was executed. + + + + Executes the task. This method will only be called once, and handles bookeeping associated with + self-replicating tasks, in addition to performing necessary exception marshaling. + + The task has already been disposed. + + + + IThreadPoolWorkItem override, which is the entry function for this task when the TP scheduler decides to run it. + + + + + + Outermost entry function to execute this task. Handles all aspects of executing a task on the caller thread. + Currently this is called by IThreadPoolWorkItem.ExecuteWorkItem(), and TaskManager.TryExecuteInline. + + + Performs atomic updates to prevent double execution. Should only be set to true + in codepaths servicing user provided TaskSchedulers. The ConcRT or ThreadPool schedulers don't need this. + + + + The actual code which invokes the body of the task. This can be overriden in derived types. + + + + + Alternate InnerInvoke prototype to be called from ExecuteSelfReplicating() so that + the Parallel Debugger can discover the actual task being invoked. + Details: Here, InnerInvoke is actually being called on the rootTask object while we are actually executing the + childTask. And the debugger needs to discover the childTask, so we pass that down as an argument. + The NoOptimization and NoInlining flags ensure that the childTask pointer is retained, and that this + function appears on the callstack. + + + + + + Performs whatever handling is necessary for an unhandled exception. Normally + this just entails adding the exception to the holder object. + + The exception that went unhandled. + + + + Waits for the to complete execution. + + + The was canceled -or- an exception was thrown during + the execution of the . + + + The has been disposed. + + + + + Waits for the to complete execution. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + true if the completed execution within the allotted time; otherwise, false. + + + The was canceled -or- an exception was thrown during the execution of the . + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + The has been disposed. + + + + + Waits for the to complete execution. + + + A to observe while waiting for the task to complete. + + + The was canceled. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + + + Waits for the to complete execution. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + true if the completed execution within the allotted time; otherwise, + false. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + + + Waits for the to complete execution. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for the task to complete. + + + true if the completed execution within the allotted time; otherwise, false. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + The core wait function, which is only accesible internally. It's meant to be used in places in TPL code where + the current context is known or cached. + + + + + Cancels the . + + Indiactes whether we should only cancel non-invoked tasks. + For the default scheduler this option will only be serviced through TryDequeue. + For custom schedulers we also attempt an atomic state transition. + true if the task was successfully canceled; otherwise, false. + The + has been disposed. + + + + Sets the task's cancellation acknowledged flag. + + + + + Runs all of the continuations, as appropriate. + + + + + Helper function to determine whether the current task is in the state desired by the + continuation kind under evaluation. Three possibilities exist: the task failed with + an unhandled exception (OnFailed), the task was canceled before running (OnAborted), + or the task completed successfully (OnCompletedSuccessfully). Note that the last + one includes completing due to cancellation. + + The continuation options under evaluation. + True if the continuation should be run given the task's current state. + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + The that will be assigned to the new continuation task. + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Converts TaskContinuationOptions to TaskCreationOptions, and also does + some validity checking along the way. + + Incoming TaskContinuationOptions + Outgoing TaskCreationOptions + Outgoing InternalTaskOptions + + + + Registers the continuation and possibly runs it (if the task is already finished). + + The continuation task itself. + TaskScheduler with which to associate continuation task. + Restrictions on when the continuation becomes active. + + + + Waits for all of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + An array of instances on which to wait. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + A to observe while waiting for the tasks to complete. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The was canceled. + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for the tasks to complete. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + Waits for a set of handles in a STA-aware way. In other words, it will wait for each + of the events individually if we're on a STA thread, because MsgWaitForMultipleObjectsEx + can't do a true wait-all due to its hidden message queue event. This is not atomic, + of course, but we only wait on one-way (MRE) events anyway so this is OK. + + An array of wait handles to wait on. + The timeout to use during waits. + The cancellationToken that enables a wait to be canceled. + True if all waits succeeded, false if a timeout occurred. + + + + Internal WaitAll implementation which is meant to be used with small number of tasks, + optimized for Parallel.Invoke and other structured primitives. + + + + + This internal function is only meant to be called by WaitAll() + If the completed task is canceled or it has other exceptions, here we will add those + into the passed in exception list (which will be lazily initialized here). + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + The index of the completed task in the array argument. + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + A to observe while waiting for a task to complete. + + + The index of the completed task in the array argument. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + The was canceled. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for a task to complete. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + Gets a unique ID for this Task instance. + + + Task IDs are assigned on-demand and do not necessarily represent the order in the which Task + instances were created. + + + + + Returns the unique ID of the currently executing Task. + + + + + Gets the Task instance currently executing, or + null if none exists. + + + + + Gets the Exception that caused the Task to end prematurely. If the Task completed successfully or has not yet thrown any + exceptions, this will return null. + + + Tasks that throw unhandled exceptions store the resulting exception and propagate it wrapped in a + in calls to Wait + or in accesses to the property. Any exceptions not observed by the time + the Task instance is garbage collected will be propagated on the finalizer thread. + + + The Task + has been disposed. + + + + + Gets the TaskStatus of this Task. + + + + + Gets whether this Task instance has completed + execution due to being canceled. + + + A Task will complete in Canceled state either if its CancellationToken + was marked for cancellation before the task started executing, or if the task acknowledged the cancellation request on + its already signaled CancellationToken by throwing an + OperationCanceledException2 that bears the same + CancellationToken. + + + + + Returns true if this task has a cancellation token and it was signaled. + To be used internally in execute entry codepaths. + + + + + This internal property provides access to the CancellationToken that was set on the task + when it was constructed. + + + + + Gets whether this threw an OperationCanceledException2 while its CancellationToken was signaled. + + + + + Gets whether this Task has completed. + + + will return true when the Task is in one of the three + final states: RanToCompletion, + Faulted, or + Canceled. + + + + + Checks whether this task has been disposed. + + + + + Gets the TaskCreationOptions used + to create this task. + + + + + Gets a that can be used to wait for the task to + complete. + + + Using the wait functionality provided by + should be preferred over using for similar + functionality. + + + The has been disposed. + + + + + Gets the state object supplied when the Task was created, + or null if none was supplied. + + + + + Gets an indication of whether the asynchronous operation completed synchronously. + + true if the asynchronous operation completed synchronously; otherwise, false. + + + + Provides access to the TaskScheduler responsible for executing this Task. + + + + + Provides access to factory methods for creating and instances. + + + The factory returned from is a default instance + of , as would result from using + the default constructor on TaskFactory. + + + + + Provides an event that can be used to wait for completion. + Only called by Wait*(), which means that we really do need to instantiate a completion event. + + + + + Determines whether this is the root task of a self replicating group. + + + + + Determines whether the task is a replica itself. + + + + + The property formerly known as IsFaulted. + + + + + Gets whether the completed due to an unhandled exception. + + + If is true, the Task's will be equal to + TaskStatus.Faulted, and its + property will be non-null. + + + + + Checks whether the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag is set, + This will only be used by the implicit wait to prevent double throws + + + + + + Checks whether the body was ever invoked. Used by task scheduler code to verify custom schedulers actually ran the task. + + + + + A structure to hold continuation information. + + + + + Constructs a new continuation structure. + + The task to be activated. + The continuation options. + The scheduler to use for the continuation. + + + + Invokes the continuation for the target completion task. + + The completed task. + Whether the continuation can be inlined. + + + + Initializes a new with the specified function. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + + The argument is null. + + + + + Initializes a new with the specified function. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + The to be assigned to this task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified function and creation options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified function and creation options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified function and state. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the action. + + The argument is null. + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + The to be assigned to the new task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + The to be assigned to the new task. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Creates a new future object. + + The parent task for this future. + A function that yields the future value. + The task scheduler which will be used to execute the future. + The CancellationToken for the task. + Options to control the future's behavior. + Internal options to control the future's behavior. + The argument specifies + a SelfReplicating , which is illegal."/>. + + + + Creates a new future object. + + The parent task for this future. + An object containing data to be used by the action; may be null. + A function that yields the future value. + The CancellationToken for the task. + The task scheduler which will be used to execute the future. + Options to control the future's behavior. + Internal options to control the future's behavior. + The argument specifies + a SelfReplicating , which is illegal."/>. + + + + Evaluates the value selector of the Task which is passed in as an object and stores the result. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new task. + A new continuation . + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The , when executed, should return a . This task's completion state will be transferred to the task returned + from the ContinueWith call. + + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be passed as + an argument this completed task. + + The that will be assigned to the new task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The , when executed, should return a . + This task's completion state will be transferred to the task returned from the + ContinueWith call. + + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Gets the result value of this . + + + The get accessor for this property ensures that the asynchronous operation is complete before + returning. Once the result of the computation is available, it is stored and will be returned + immediately on later calls to . + + + + + Provides access to factory methods for creating instances. + + + The factory returned from is a default instance + of , as would result from using + the default constructor on the factory type. + + + + + Provides support for creating and scheduling + Task{TResult} objects. + + The type of the results that are available though + the Task{TResult} objects that are associated with + the methods in this class. + + + There are many common patterns for which tasks are relevant. The + class encodes some of these patterns into methods that pick up default settings, which are + configurable through its constructors. + + + A default instance of is available through the + Task{TResult}.Factory property. + + + + + + Initializes a instance with the default configuration. + + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the default configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The + TaskScheduler to use to schedule any tasks created with this TaskFactory{TResult}. A null value + indicates that the current TaskScheduler should be used. + + + With this constructor, the + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to , unless it's null, in which case the property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory{TResult}. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory{TResult}. + + + The exception that is thrown when the + argument or the + argument specifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory{TResult}. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory{TResult}. + + + The default + TaskScheduler to use to schedule any Tasks created with this TaskFactory{TResult}. A null value + indicates that TaskScheduler.Current should be used. + + + The exception that is thrown when the + argument or the + argumentspecifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to + , unless it's null, in which case the property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new task. + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The that will be assigned to the new task. + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Gets the default CancellationToken of this + TaskFactory. + + + This property returns the default that will be assigned to all + tasks created by this factory unless another CancellationToken value is explicitly specified + during the call to the factory methods. + + + + + Gets the TaskScheduler of this + TaskFactory{TResult}. + + + This property returns the default scheduler for this factory. It will be used to schedule all + tasks unless another scheduler is explicitly specified during calls to this factory's methods. + If null, TaskScheduler.Current + will be used. + + + + + Gets the TaskCreationOptions + value of this TaskFactory{TResult}. + + + This property returns the default creation options for this factory. They will be used to create all + tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Gets the TaskContinuationOptions + value of this TaskFactory{TResult}. + + + This property returns the default continuation options for this factory. They will be used to create + all continuation tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Represents the current stage in the lifecycle of a . + + + + + The task has been initialized but has not yet been scheduled. + + + + + The task is waiting to be activated and scheduled internally by the .NET Framework infrastructure. + + + + + The task has been scheduled for execution but has not yet begun executing. + + + + + The task is running but has not yet completed. + + + + + The task has finished executing and is implicitly waiting for + attached child tasks to complete. + + + + + The task completed execution successfully. + + + + + The task acknowledged cancellation by throwing an OperationCanceledException2 with its own CancellationToken + while the token was in signaled state, or the task's CancellationToken was already signaled before the + task started executing. + + + + + The task completed due to an unhandled exception. + + + + + Specifies flags that control optional behavior for the creation and execution of tasks. + + + + + Specifies that the default behavior should be used. + + + + + A hint to a TaskScheduler to schedule a + task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to + be run sooner, and tasks scheduled later will be more likely to be run later. + + + + + Specifies that a task will be a long-running, course-grained operation. It provides a hint to the + TaskScheduler that oversubscription may be + warranted. + + + + + Specifies that a task is attached to a parent in the task hierarchy. + + + + + Task creation flags which are only used internally. + + + + Specifies "No internal task options" + + + Used to filter out internal vs. public task creation options. + + + Specifies that the task will be queued by the runtime before handing it over to the user. + This flag will be used to skip the cancellationtoken registration step, which is only meant for unstarted tasks. + + + + Specifies flags that control optional behavior for the creation and execution of continuation tasks. + + + + + Default = "Continue on any, no task options, run asynchronously" + Specifies that the default behavior should be used. Continuations, by default, will + be scheduled when the antecedent task completes, regardless of the task's final TaskStatus. + + + + + A hint to a TaskScheduler to schedule a + task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to + be run sooner, and tasks scheduled later will be more likely to be run later. + + + + + Specifies that a task will be a long-running, course-grained operation. It provides + a hint to the TaskScheduler that + oversubscription may be warranted. + + + + + Specifies that a task is attached to a parent in the task hierarchy. + + + + + Specifies that the continuation task should not be scheduled if its antecedent ran to completion. + This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled + exception. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should not be scheduled if its antecedent was canceled. This + option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent ran to + completion. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent threw an + unhandled exception. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent was canceled. + This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be executed synchronously. With this option + specified, the continuation will be run on the same thread that causes the antecedent task to + transition into its final state. If the antecedent is already complete when the continuation is + created, the continuation will run on the thread creating the continuation. Only very + short-running continuations should be executed synchronously. + + + + + Represents an exception used to communicate task cancellation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the + class with a specified error message and a reference to the inner exception that is the cause of + this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + + Initializes a new instance of the class + with a reference to the that has been canceled. + + A task that has been canceled. + + + + Gets the task associated with this exception. + + + It is permissible for no Task to be associated with a + , in which case + this property will return null. + + + + + Represents the producer side of a unbound to a + delegate, providing access to the consumer side through the property. + + + + It is often the case that a is desired to + represent another asynchronous operation. + TaskCompletionSource is provided for this purpose. It enables + the creation of a task that can be handed out to consumers, and those consumers can use the members + of the task as they would any other. However, unlike most tasks, the state of a task created by a + TaskCompletionSource is controlled explicitly by the methods on TaskCompletionSource. This enables the + completion of the external asynchronous operation to be propagated to the underlying Task. The + separation also ensures that consumers are not able to transition the state without access to the + corresponding TaskCompletionSource. + + + All members of are thread-safe + and may be used from multiple threads concurrently. + + + The type of the result value assocatied with this . + + + + Creates a . + + + + + Creates a + with the specified options. + + + The created + by this instance and accessible through its property + will be instantiated using the specified . + + The options to use when creating the underlying + . + + The represent options invalid for use + with a . + + + + + Creates a + with the specified state. + + The state to use as the underlying + 's AsyncState. + + + + Creates a with + the specified state and options. + + The options to use when creating the underlying + . + The state to use as the underlying + 's AsyncState. + + The represent options invalid for use + with a . + + + + + Attempts to transition the underlying + into the + Faulted + state. + + The exception to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The argument is null. + The was disposed. + + + + Attempts to transition the underlying + into the + Faulted + state. + + The collection of exceptions to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The argument is null. + There are one or more null elements in . + The collection is empty. + The was disposed. + + + + Transitions the underlying + into the + Faulted + state. + + The exception to bind to this . + The argument is null. + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + Faulted + state. + + The collection of exceptions to bind to this . + The argument is null. + There are one or more null elements in . + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Attempts to transition the underlying + into the + RanToCompletion + state. + + The result value to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + RanToCompletion + state. + + The result value to bind to this . + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + Canceled + state. + + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Attempts to transition the underlying + into the + Canceled + state. + + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Gets the created + by this . + + + This property enables a consumer access to the that is controlled by this instance. + The , , + , and + methods (and their "Try" variants) on this instance all result in the relevant state + transitions on this underlying Task. + + + + + An exception holder manages a list of exceptions for one particular task. + It offers the ability to aggregate, but more importantly, also offers intrinsic + support for propagating unhandled exceptions that are never observed. It does + this by aggregating and throwing if the holder is ever GC'd without the holder's + contents ever having been requested (e.g. by a Task.Wait, Task.get_Exception, etc). + + + + + Creates a new holder; it will be registered for finalization. + + The task this holder belongs to. + + + + A finalizer that repropagates unhandled exceptions. + + + + + Add an exception to the internal list. This will ensure the holder is + in the proper state (handled/unhandled) depending on the list's contents. + + An exception object (either an Exception or an + IEnumerable{Exception}) to add to the list. + + + + A private helper method that ensures the holder is considered + unhandled, i.e. it is registered for finalization. + + + + + A private helper method that ensures the holder is considered + handled, i.e. it is not registered for finalization. + + Whether this is called from the finalizer thread. + + + + Allocates a new aggregate exception and adds the contents of the list to + it. By calling this method, the holder assumes exceptions to have been + "observed", such that the finalization check will be subsequently skipped. + + Whether this is being called from a finalizer. + An extra exception to be included (optionally). + The aggregate exception to throw. + + + + Provides a set of static (Shared in Visual Basic) methods for working with specific kinds of + instances. + + + + + Creates a proxy Task that represents the + asynchronous operation of a Task{Task}. + + + It is often useful to be able to return a Task from a + Task{TResult}, where the inner Task represents work done as part of the outer Task{TResult}. However, + doing so results in a Task{Task}, which, if not dealt with carefully, could produce unexpected behavior. Unwrap + solves this problem by creating a proxy Task that represents the entire asynchronous operation of such a Task{Task}. + + The Task{Task} to unwrap. + The exception that is thrown if the + argument is null. + A Task that represents the asynchronous operation of the provided Task{Task}. + + + + Creates a proxy Task{TResult} that represents the + asynchronous operation of a Task{Task{TResult}}. + + + It is often useful to be able to return a Task{TResult} from a Task{TResult}, where the inner Task{TResult} + represents work done as part of the outer Task{TResult}. However, doing so results in a Task{Task{TResult}}, + which, if not dealt with carefully, could produce unexpected behavior. Unwrap solves this problem by + creating a proxy Task{TResult} that represents the entire asynchronous operation of such a Task{Task{TResult}}. + + The Task{Task{TResult}} to unwrap. + The exception that is thrown if the + argument is null. + A Task{TResult} that represents the asynchronous operation of the provided Task{Task{TResult}}. /// Unwraps a Task that returns another Task. + + + + Provides support for creating and scheduling + Tasks. + + + + There are many common patterns for which tasks are relevant. The + class encodes some of these patterns into methods that pick up default settings, which are + configurable through its constructors. + + + A default instance of is available through the + Task.Factory property. + + + + + + Initializes a instance with the default configuration. + + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The + TaskScheduler to use to schedule any tasks created with this TaskFactory. A null value + indicates that the current TaskScheduler should be used. + + + With this constructor, the + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to , unless it's null, in which case the property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory. + + + The exception that is thrown when the + argument or the + argument specifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory. + + + The default + TaskScheduler to use to schedule any Tasks created with this TaskFactory. A null value + indicates that TaskScheduler.Current should be used. + + + The exception that is thrown when the + argument or the + argumentspecifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to + , unless it's null, in which case the property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The started Task. + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors + and then calling + Start to schedule it for execution. However, + unless creation and scheduling must be separated, StartNew is the recommended + approach for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The that will be assigned to the new task. + The started Task. + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors + and then calling + Start to schedule it for execution. However, + unless creation and scheduling must be separated, StartNew is the recommended + approach for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The that will be assigned to the new + A TaskCreationOptions value that controls the behavior of the + created + Task. + The TaskScheduler + that is used to schedule the created Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The started Task. + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The that will be assigned to the new + The started Task. + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The TaskScheduler + that is used to schedule the created Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the asynchronous + operation. + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the asynchronous + operation. + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the asynchronous + operation. + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Check validity of options passed to FromAsync method + + The options to be validated. + determines type of FromAsync method that called this method + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Gets the default CancellationToken of this + TaskFactory. + + + This property returns the default that will be assigned to all + tasks created by this factory unless another CancellationToken value is explicitly specified + during the call to the factory methods. + + + + + Gets the TaskScheduler of this + TaskFactory. + + + This property returns the default scheduler for this factory. It will be used to schedule all + tasks unless another scheduler is explicitly specified during calls to this factory's methods. + If null, TaskScheduler.Current + will be used. + + + + + Gets the TaskCreationOptions + value of this TaskFactory. + + + This property returns the default creation options for this factory. They will be used to create all + tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Gets the TaskContinuationOptions + value of this TaskFactory. + + + This property returns the default continuation options for this factory. They will be used to create + all continuation tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Represents an abstract scheduler for tasks. + + + + TaskScheduler acts as the extension point for all + pluggable scheduling logic. This includes mechanisms such as how to schedule a task for execution, and + how scheduled tasks should be exposed to debuggers. + + + All members of the abstract type are thread-safe + and may be used from multiple threads concurrently. + + + + + + Queues a Task to the scheduler. + + + + A class derived from TaskScheduler + implements this method to accept tasks being scheduled on the scheduler. + A typical implementation would store the task in an internal data structure, which would + be serviced by threads that would execute those tasks at some time in the future. + + + This method is only meant to be called by the .NET Framework and + should not be called directly by the derived class. This is necessary + for maintaining the consistency of the system. + + + The Task to be queued. + The argument is null. + + + + Determines whether the provided Task + can be executed synchronously in this call, and if it can, executes it. + + + + A class derived from TaskScheduler implements this function to + support inline execution of a task on a thread that initiates a wait on that task object. Inline + execution is optional, and the request may be rejected by returning false. However, better + scalability typically results the more tasks that can be inlined, and in fact a scheduler that + inlines too little may be prone to deadlocks. A proper implementation should ensure that a + request executing under the policies guaranteed by the scheduler can successfully inline. For + example, if a scheduler uses a dedicated thread to execute tasks, any inlining requests from that + thread should succeed. + + + If a scheduler decides to perform the inline execution, it should do so by calling to the base + TaskScheduler's + TryExecuteTask method with the provided task object, propagating + the return value. It may also be appropriate for the scheduler to remove an inlined task from its + internal data structures if it decides to honor the inlining request. Note, however, that under + some circumstances a scheduler may be asked to inline a task that was not previously provided to + it with the method. + + + The derived scheduler is responsible for making sure that the calling thread is suitable for + executing the given task as far as its own scheduling and execution policies are concerned. + + + The Task to be + executed. + A Boolean denoting whether or not task has previously been + queued. If this parameter is True, then the task may have been previously queued (scheduled); if + False, then the task is known not to have been queued, and this call is being made in order to + execute the task inline without queueing it. + A Boolean value indicating whether the task was executed inline. + The argument is + null. + The was already + executed. + + + + Generates an enumerable of Task instances + currently queued to the scheduler waiting to be executed. + + + + A class derived from implements this method in order to support + integration with debuggers. This method will only be invoked by the .NET Framework when the + debugger requests access to the data. The enumerable returned will be traversed by debugging + utilities to access the tasks currently queued to this scheduler, enabling the debugger to + provide a representation of this information in the user interface. + + + It is important to note that, when this method is called, all other threads in the process will + be frozen. Therefore, it's important to avoid synchronization with other threads that may lead to + blocking. If synchronization is necessary, the method should prefer to throw a + than to block, which could cause a debugger to experience delays. Additionally, this method and + the enumerable returned must not modify any globally visible state. + + + The returned enumerable should never be null. If there are currently no queued tasks, an empty + enumerable should be returned instead. + + + For developers implementing a custom debugger, this method shouldn't be called directly, but + rather this functionality should be accessed through the internal wrapper method + GetScheduledTasksForDebugger: + internal Task[] GetScheduledTasksForDebugger(). This method returns an array of tasks, + rather than an enumerable. In order to retrieve a list of active schedulers, a debugger may use + another internal method: internal static TaskScheduler[] GetTaskSchedulersForDebugger(). + This static method returns an array of all active TaskScheduler instances. + GetScheduledTasksForDebugger then may be used on each of these scheduler instances to retrieve + the list of scheduled tasks for each. + + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + This scheduler is unable to generate a list of queued tasks at this time. + + + + + Retrieves some thread static state that can be cached and passed to multiple + TryRunInline calls, avoiding superflous TLS fetches. + + A bag of TLS state (or null if none exists). + + + + Attempts to execute the target task synchronously. + + The task to run. + True if the task may have been previously queued, + false if the task was absolutely not previously queued. + The state retrieved from GetThreadStatics + True if it ran, false otherwise. + + + + Attempts to dequeue a Task that was previously queued to + this scheduler. + + The Task to be dequeued. + A Boolean denoting whether the argument was successfully dequeued. + The argument is null. + + + + Notifies the scheduler that a work item has made progress. + + + + + Initializes the . + + + + + Frees all resources associated with this scheduler. + + + + + Creates a + associated with the current . + + + All Task instances queued to + the returned scheduler will be executed through a call to the + Post method + on that context. + + + A associated with + the current SynchronizationContext, as + determined by SynchronizationContext.Current. + + + The current SynchronizationContext may not be used as a TaskScheduler. + + + + + Attempts to execute the provided Task + on this scheduler. + + + + Scheduler implementations are provided with Task + instances to be executed through either the method or the + method. When the scheduler deems it appropriate to run the + provided task, should be used to do so. TryExecuteTask handles all + aspects of executing a task, including action invocation, exception handling, state management, + and lifecycle control. + + + must only be used for tasks provided to this scheduler by the .NET + Framework infrastructure. It should not be used to execute arbitrary tasks obtained through + custom mechanisms. + + + + A Task object to be executed. + + The is not associated with this scheduler. + + A Boolean that is true if was successfully executed, false if it + was not. A common reason for execution failure is that the task had previously been executed or + is in the process of being executed by another thread. + + + + Provides an array of all queued Task instances + for the debugger. + + + The returned array is populated through a call to . + Note that this function is only meant to be invoked by a debugger remotely. + It should not be called by any other codepaths. + + An array of Task instances. + + This scheduler is unable to generate a list of queued tasks at this time. + + + + + Provides an array of all active TaskScheduler + instances for the debugger. + + + This function is only meant to be invoked by a debugger remotely. + It should not be called by any other codepaths. + + An array of TaskScheduler instances. + + + + Registers a new TaskScheduler instance in the global collection of schedulers. + + + + + Removes a TaskScheduler instance from the global collection of schedulers. + + + + + Indicates the maximum concurrency level this + is able to support. + + + + + Indicates whether this is a custom scheduler, in which case the safe code paths will be taken upon task entry + using a CAS to transition from queued state to executing. + + + + + Gets the default TaskScheduler instance. + + + + + Gets the TaskScheduler + associated with the currently executing task. + + + When not called from within a task, will return the scheduler. + + + + + Gets the unique ID for this . + + + + + Occurs when a faulted 's unobserved exception is about to trigger exception escalation + policy, which, by default, would terminate the process. + + + This AppDomain-wide event provides a mechanism to prevent exception + escalation policy (which, by default, terminates the process) from triggering. + Each handler is passed a + instance, which may be used to examine the exception and to mark it as observed. + + + + + Nested class that provides debugger view for TaskScheduler + + + + Default thread pool scheduler. + + + + A TaskScheduler implementation that executes all tasks queued to it through a call to + on the + that its associated with. The default constructor for this class binds to the current + + + + + Constructs a SynchronizationContextTaskScheduler associated with + + This constructor expects to be set. + + + + Implemetation of for this scheduler class. + + Simply posts the tasks to be executed on the associated . + + + + + + Implementation of for this scheduler class. + + The task will be executed inline only if the call happens within + the associated . + + + + + + + Implementes the property for + this scheduler class. + + By default it returns 1, because a based + scheduler only supports execution on a single thread. + + + + + Provides data for the event that is raised when a faulted 's + exception goes unobserved. + + + The Exception property is used to examine the exception without marking it + as observed, whereas the method is used to mark the exception + as observed. Marking the exception as observed prevents it from triggering exception escalation policy + which, by default, terminates the process. + + + + + Initializes a new instance of the class + with the unobserved exception. + + The Exception that has gone unobserved. + + + + Marks the as "observed," thus preventing it + from triggering exception escalation policy which, by default, terminates the process. + + + + + Gets whether this exception has been marked as "observed." + + + + + The Exception that went unobserved. + + + + + Represents an exception used to communicate an invalid operation by a + . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the + class using the default error message and a reference to the inner exception that is the cause of + this exception. + + The exception that is the cause of the current exception. + + + + Initializes a new instance of the + class with a specified error message and a reference to the inner exception that is the cause of + this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/ensureRedirect.xml b/packages/Microsoft.Bcl.1.1.10/lib/sl4-windowsphone71/ensureRedirect.xml new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.IO.dll b/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.IO.dll new file mode 100644 index 0000000000000000000000000000000000000000..32dd41b780e3abf07d8bcbf35ba532ffc8d4618c GIT binary patch literal 22672 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.IO.xml b/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.IO.xml new file mode 100644 index 000000000..e83273427 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.IO.xml @@ -0,0 +1,51 @@ + + + + System.IO + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Found invalid data while decoding.. + + + + + The exception that is thrown when a data stream is in an invalid format. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Runtime.dll b/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..118fcce204348879c199c5ebba06751972f7f298 GIT binary patch literal 22176 zcmeHv2{@Hq*YJG?^Gqb;F=Te!$4tmPWDJoI2M5P=IF7LaM~O-_5J{1QC}}QA(xenA z%_USQLMc@8@B5g0dY$Rnz4oy7-s@g_?X}n5H~Tf&5C(!EEci`M zLeP2eM1nB`{xwJj+1!#BxuMf+ccspw?Cwgr29u+4kyJ_$l^BlmCq_h2XgEI-jv5nz zBS+xO9bItYlmHT*i;G=$nzWMz1lgf5&|~elt~0H@hR{+RC=LkX1u4u^sR!`ji32}l z@I!KN0HUY*jU*ubXM|(`LHc_%3XIElGlK|12O-9I&OVSt$Q;mhM)9BobHE7)LCJIIpT-^-SMJH`efd*9!ov)*uUD;;!Xm6Qrz@24kckefyVH&Qw`Ela~>&;9f^ghv!%aLdbW-{*;;ey6A7wZE;6>AARf`g zj>aeeMlmZ%px2=Q&y=Lmm<=-#1;834hf(kkPf&7U0l+ku6{aW%R0jd!Z>%OB#%sVD z1U)2$2?_&H7BnZb5rVS8vj~a1(5U2yplGB7448??g3KxxNEgHrF_f`dWn&JW)&MU8 z9g;B(qxb?a83l^a=03GPtQVrxiBCR8@6L~L4oE`jFz)t}DM8OY9Lw=y{Y#iw; zl7^I?dNM=OC`B-(G#IcIbr!`8^`V#m#G(->&Vc$1=*xf!44BP;#~84g0pBtpgh6U4 zVU}Q+q4$`_7&GW62AQ&4SW5s^8E_32X_3l+sUQUjQ@ufWS`098NRg3-;JgqFSpuG- zz(`OiUMLV?oFEQT0G7hYLj!sURxpjRFt9Vz7%Kz2J6#Xq7ccYyVnQ(iDhMBfQ3$_~ zaDzz&g`~9N5G+kt7tlmQ9a9*q5lRSXkRAq>!s-I@FwoFc9-|}{8lS~vk^V_RARtr_ zjBNqNH;eItJds&U0gMFUMga%sk7|@0R zS2Can0}>gK%z#l0n81K30BS%x0n~%?0h9&rLKpQKNEi~YVL&OsV=mC93^WL!G6SYU zDQG;z0hxjn0q7urqR>MC%^)I3kA^4!Iztm6#TgP}#B~5%2H69+4vGiRmQm7$k>bgS zheAPUUq)O0&^G8Dl+1{yGU6ow@}n9Vu$uufD5Q)GfC^yc0L+25q9g%_FyIdbVFAP@ zBOGI9%n~Hu2(krp37H#A;D=N}K}(Pf5O54=hf!qYO<^tzFpmWoaREkNfJH695*A=7 z3$Tm@*vsIFcaDjmk;6&&fUq#g z#tB(|Nzu{1gz0R^g+`>2?1}!tO!K%lKn~1kV$kx zg#YiWni0c5NqbVbABpNf44+4ID#s2q2BV`N4DF45rEVn(4pKBh$fP@vc?$)vD=1)OEji6w@`kf7*!3}+;Vk`jL9 zw;PEX4SEeoL9Rq9=#(X}nMiRIYUo_&XGU*EiA^8-L8S zi3p@n!-)vnh+%(P>Q6IV$+WO}FMXz)=A>wUDmfCN`o|{CC=r3=pcwG3f13@YHXz3T zHv@E~5(7x##NV?foJpAEwdA__=0UHBR<^XqgF(ClO2=qA$V!8j#{o3)T zLnZi4M|qAH#FpmX0wS1CQ-?NJpkb{2@9jd*#ns+ zBeI4?RJkAkz%oQFEDKg9Boj$pSPA8Yf|T(N7OqY}ry)|IGCf5N5tCE}%%MOq>kX%$ z8rpyY_o7+7Vor{Z3?n8W3VRVk1UEwk=Mv)w6rd&wQoCA#vnTsgDbbWb8qSPD12POI6$oGcx^lZ#={UKjDpxrW5{6vc0@l? z7%M>wRwwA<2@r%sK^%+>Qz|jSKbQwdF^L#W@-j8E^CBPx0FyYTS0!Z3SXU}gv5)`? z;{HW?fsqH;2C)F!krV+Ki`bAz01?Feh9C)qv94$#cPcT`ff8X6?@wZAE7xEuB`%s# zd1fDq)D#0L3Si%-z=Oz{xl0S=>e?;4eg%E;q9eDZ>^>nC{Pn&3yfk$*30~?1buBNj zS@R-CfF&)Q6hH>^!fRm{@v-W7ExdnpB$X24L)0Q^`fCIdyk6NMIKKAss1)_zqSZLl6z@{bm9UqY0vJkPGAkpas|qxIi|LBjf;Z8vrdq z90`}OgFg{f$IO_k?6c41jNB=A$J8vIP5=*c@IwKrM2HILkiq_&1ZYNpy&{ECNETTT zfH_D7B_hC%Bn&)hpd1BYQ{e>mAs~tZeWHO88%ie_WngILPZRP3ap124J8=}) z?@*v{D3Z}e0vHhyU_dW{U=Jwz1G*GsHw1b`144|Hrh?K4oZlO3hzHP`8HG8Z5Y4Dd z24&~>*#$}fIW&+T4k0_M7|>@Vf2K`Muy32A;|9u6LHW5ctAkqF;70%>z%xdHyf*<* z2jLt-mkORlz^l2D{8gKHC;*g2JRcCW2~q=e>;R1*1_flSk)Xc_XM><%KplcA01y5? zU+|zb4l-f1fSX4r8l+M|JJF2(#sU}sMuP+=##kJu%OY~C_Y{$&5%#6aK=sIW=w#W!JfEUk8;epvODB%A*gieNFsd@FVi?pKi0$ktq zDa4%l5Pj%*T1A|yT4@noFcGF>YhgO3qzHpXq0s^wfTL>$)JERm@|Wu~xVr}Cn(Y{h z33MTj(Id<%EVBT5l?y=t=3@p3s{p$@F&elyf@qWo0x!&sB(eywIFkaxDG>n#30MqC zVHfzlxk`|NC6RoLfbg6->k6DIs=x^l9*J`@Gl3-*a}hLQEp-io4nc#UwFaPCujPf)a^Obw?UEgENMitk~4uA=t|6G8G7hzODJHg-k=cPTDoqFPi%494aJ+e z`XxS#x5vIdm&?L)(~o%i?9s25ixe?dsz8qa+Y!`Wke8uwC!``mz*{?WAS`S^5+xiM|Zq*Mv?p{CxNk)~> zQEY%COt3g$sW>-Q2)pQV&}%$ew3?mDr7xbey)aZdkZ+VBJK{1}VOS`6k&NcpQ)kOa z_5tJXvENTApJ>!N#RIz{^(C?Puq|v;WL0F5W)@7NMe3`m`BTI2;WJwk#KeL^VeQ}*u=NZMqtgtg8;FaG`&|Ph z>R(W%!2(Esmtr|#_8F2G*7@QBCL$0Q6ohl3XCFUe@32wB=GLiW*BUnpw(@`Ck>8r+ zS#RX}-lWeJqpW!GrE7Zah0&+?Tn2cB44W(?Peb=VX?mBHNUI!`?hGxi=i%DYDuEUq zj6a)!YgMV_py}d|@J>G4S*c=dASZaV>ebbj6}vHaL%R;2%op*tG9P|Hmwab^`Up9{ z0pGVp<~?g0`JG=!)bIzHdMVQQVfSmhRi6vR3m!E(^k(yq#h0%*3O+wNRDO|9x$2v; zmQaLe^iR0;d*$w;S9eXHX)oV7`dVlEQg;XyLhhOkZ)pnm&jha7+PW%X`!o{a@y(W^`QIT z66&ru7gGyHmTKmWxpwgD>GG=`4lUic@uuJX7cB#ZnqwC_wBU>V3F;M{6;-S3?UL-= z8U;9Fhgrs(t*XAKw>y_gD10+iZE4w*mlj3hYuVhyW}enb>8bfqWo%wru}x+<-KMZT z*TYG`LpXZUjPscC!z9=^Xht#l0#14TZlYr5X)DRKUEWTaZfTcS7_?w}%eI`kQ=ba2 zL?$;M7U+w^masYDm-nLq6A)2i5>Nt*oSv4lpC<6s1QIk)y2d^O{bir;PyCm#}v?+;ognYLYsH(%jt%Rt+H8c7Ns6Yo8D8U&Vs6eB?rvm?kHtm<0%g}dmULPLs zG`xFhUFy@#6(`IJqt`EP;u+9>e)Eiq=-ThDO!}!&#wl!v&PBv#w#uSvU2IUCnoPKd+A9@izbR@Wh~KyF)`Y_aLs| zQ|C{4@80W^#IH-*6xgK;JMKo(4+vAA$TTOan0=glf93T%@uLU!YCz5umh%tN!(JU` z)+)Q|l1Ac-W6RR=xbP&c9Qrv%*q}19ovH9jLwg)Gtk2#A6?(4a&Yp4mIL>BdD7ebrHna3nf^AfR70a`Ur5%Ma=`Ba2&66IdJpX*@llI{z zFN+t|#|&R91n(6oE2T!e4KLpFWSkS`)@VVTxYOigNpQL#FYv|~ZlNmjDoEedaWE`WH_X0UtjoOF%fXGV zpv0tp&i1jRe@~mL->`*YPZcZl)w1}&eb4Q3F1?9ISA4Q;(J|0Ha5~Pbbn$`AJA7Gg z1`SngK9~nH8f-1lU~6C=L^BAWP?K0D7y};jwAXJn31StC^I)-H!;l8^GqX+aM+8w= zCI(?({?4YM5sPi&KEdIE+}51VJl|#I1j-SEx+kjelG#Fw&{$3hcCe$50lRH8$Yg;o zHa+}Hs!QOCJZuP0M$S0FK{QyL(eEl&a(Og#kfZOOvndrwTNntV-I2BDPmd*>v7wF{y*Ej^ z-O0I_e5Z6jPW2my(>1rds@*Hv>LPo}xej4U-Cm#HYU}9d3!XWl?jKqQVPA#>9qP9tAZ^PkM>pJ+%Fj z{K*7=H}gX)?~eDCtaf`@fVMDK^BH+|{2^UE;>Y0}fj1w>Jr##kF5gn-M{>T#dUG5w9WEP29W7dqelmxNUO0@@6)fV4+N7dmU zq0|@z(Z`)nW@-qLB)GS}Ap?!6RtkmdP!zwExhlN7QuJ@jNeB?im!?yY5nd1`E$9H#To5 zqgnEfhU}KYPa{EMDnHisq>I1raVRNnka4-4`OTt*t#xg6>j_irq46VOyMrDpys&gR zk=FWF!4fZDmFBq0nez=s<$FkWHXO0#vj<%GZR4Z8r+TIKZX9b9_{@6FCEWS6MfO2! zXoXcEpS)sV`QA4Vm{V398sAjLXSIlpesI&ks`#I%ed126n;~AS?ts_4d$%@vVa&B(_MJW!_xxVMN_$ido)+a9&M8oN@AA5=^Z1AShqj0Nop(py zali>U<-bfc?sBiKUcFDOQyi66RU7|lTWkL^)W@#NS?o-=GOfFYTm)Y_R_=P!lNr*U z-0*JCCuX(Hn7*A#veJ>?zy5d=pO5DnW$B8n6Lu)v5z0=@IbW=|KS=fZO78c5Udx5@ zw&9j{v52UTHxpLG5)7589Jk&_8cuFz7wEXkPTVo{`26Az4%?EhYbmcSssB*7fx~p& zLl>&lNBDMaJju%wwU~VociXc?d0z}J1g<`%s@5~UIjwo6TW?|Hp0FxCyN6#B>W>O1 z`Y8?`Dp1s9juY`~GL#6Hqz`f2RHQ4k&(?$(W)#N~Pe&9B9H~EQHN;Pu*s30O@@L1& zTia!t0xuPcZ{ZI>8>&`&WSxH__4dq(+y1BHU6~%5;GL@WoG6X2JXMq%Bl2|D7J(RP zHT81Vh$7GJOY4gUH{F(c^g+V0Y2Qbi*P|#BC4*zbE%L2*5%0_P-XkbZa$ooKdSWkH z{N$V3f#vvBLZM9pB@+a?!U34Bun+inVKCkPIlsh|*Y{Vq$(+-F;{k ztCx?yl`IVSad+KoTdP9l({_FbCrUTp%o2NSP1V6Fox{DjbtjrqWhfi6o4Zf`rZA`d zEpbgbQc+shZV!zeA6kFbDqkoMIr;S5t`-Gxf_vpFYB60-8K$FU=iUi3fsPggNqh_` z-0_dC`oBMUm?wkYu<%^3F$9iTgarj8a8|~c2t15q0k9_p9tv$(Yt0`dF!L4Yelg(e#2NFp3)~oHB2XFSU3V0K)tQfv?y7Uf?Z?LdYFKo4@U^x1tYkVqu zGnc`=Am@#1Z(y|u7l-^aOfF75-1)ftyW@nKkkAo>w*ur?PI2wY>^2$8oQG7eC|sLB zl=Zob1D1mu%*f4zU+%as?b5t*h09P3!JNF^z|^ zIfTd9%U!q`!u1i>sArnsMz71*6Eg|ZWhUpQB^E`X%M60F53{^RPN`&GfTSltb_hHO z3w_h9Q6vl&4W=9HHCGvhEkayFe|l2Ia9+%-i^VPdkXYNo8n;UGm?NdFa>@Cjh?fo5 zq}arnSvKYNpLvy0MCaNCOle+VN{`KR{px1QgbT@+$h~IR)VlNEDhKG&#(#@@RRNX* zHWN6xlAQCK{ObC}0e=}`>Hv!XgQzZnK+s0~zuG`bXVCu;|L@gTk6OCUCGn9aPx)7T zrd}A9{or$0?4-HJ2g?5Mk^)Xwlky*@=cb3<- z7e3E;BD>}Ch?RVOc;<`v3yq{=iq8AGs3V0{JF+s&ZZcPd_ww-3R^oy3eVgiyj#uAi_jsGRZOX|34yKZT{k?9= zS+Nv3d75zm1*is+V2wbcjykx{w$K-B9TD)>iRl6T=wclm=`-Qww`0&b ze|{MD+p{W4WHjSE3`qB^rxp=s9|WkvI;yZP!-qngVF2)yIS54CT(^s4klZF}Oj2i?{;E!V~5MUOY$ z>QCq87*$dgi09Ax8CssVR?Oy}{t?Ywzvmy{b#p!y^}qQ|nAm>-Vy%4Byq>@G?2$_( zUv6;?58V!-PIa%1t?T$%QciC?U*Y}Sd@|7PfU#VK-A{*%<+=C6u0J_`M=r3lp42^B z>;J7hToHJ*Z#&4}K09pp{#{u(`-z?S#!VZj$u(m}+`dnnYekc@9k=nNuZ?4^?cQ3M zL}4>ht_o_f8aP?*ooH}^>5K2ycFQ3*uTN#lC-8hi)m=N=Iuwq*YtLCecK%D~B)aFq z^SgBur;M*e9k(pp9`WWYlXw3|NIvzJ<+^uQ^*aZ}YDbH8EZ?S8?mZrp82j;n?K0-u zlI31inSy#!?=E#-jms|{l^uSnD`Cem{&8|=`01@H7N;xtKXLN+>N)y-)wXLUsX7>A zRHXmG^C!lGt$Yqqx3Rf!FR#rsEfUbPy=s!G29J5ljY(cmbx7c>?N9VRs1x$k`dDnC zTHoa`?bRafyMFX{e6CrmzNkV#;EUq!FHO2akF|P2bzwRSxY5AmH{)L6&TeBY1(;ui z1x`u-x2y%g1wOSFD9)_~f9^w{TNMbv6{D*TYw1lnVze130Y=b&eAS|(|9DXWja*bf zgNq7a&Q%V5qw;!qDrBCYn+arXVw+L+FVR(-8y^4iKEHA#+4XBC;(274& z3%S8flm-iSBe(zRZ!z*d;rf?{c`kG(=oXy%N0|RC| zQ=hIoxh_rgsZq^#@7@f@O(LI))jZy0FH=3PvHJQsqo3*zPGJmdPFC;I-Pl%`tn$Ud zZKssh(nh_AfFzfT`+1Hnk=b--6#2U501&ezVkFPFs(-B0vXYnSPc^yXP<8Fy+7 z>a43m(|w*_5j=HC^x-Po9=&3oJ{g-j;q&I}E#5RVQWIZOdt^K6E%UDrUKMkHo|@Tj zZv&TA?&#?EJXrnX<%z(qhP^541|ALA_Sh(v2`C&X+YpreZmVCs&q=jSkKOls)yF9) z3=f1iDrBi-8S6MUbZ$1!xW;C8{b8w@8ZBouVk{oFT1CLyH)o%bqsFFZC(;+cI^Zyp zd!o*=C@in-^`rFdv;L?7upaioe{?C$UETQYV)PdW0SkOpe>kQ`eb`M>=)2WM-xN3;HxTz@pMj$FP@|6Tc} zxf|LNII|l_K6n+Qu}13s@YJ7|m-n*YURG~aQSzDm+`nF0t8}k7X;b!wZI(`}o^bA3 z-zH)!_SwL6n{(@liO_B%7QAA?J44aZhiAm&_ULu>1vHr(#wW^r7T9nko0gh6az_qr zsdRNKZ|&ggn4wIYQ3LjsQ)cW^+E%wTN0zE3WyyWqDZz-FtHE({hWGke2y{4da zxka3W){VA9hYlttN`JG?k*xe~C6oN+z*v3gIorKmA7bJ~`rqs1CkWe4J~|~69P_UF z+mCG@IFjF!msS6O2e5WKIyz#){dXGPFLZNotWS2AE{^9@mr5KoVXs;Ky}bFbcSCV{ zfqRsjgSEvK)24!0PxfT%(20bD4VS{hLzg2^G`2aQ!a(y zYzgP>G>cLmfa{CwGajlXSOV~ZqyGEeF16X+F&ma3jm7Qh4n2RgKJ+DNSekdDKIAKl zU;7@`tgc_3tel1T?W z*I@MiwUFB@;DWO~i3YeLuM0htkULsqP5N3`sZ z6c^GqC!B?-skGzdFOJ2v+pIn8>YwOr!U#4DN3P#^1I1*1*38pcFL4tr>g zCFAyziudm~<*l~M7)^7aeop&*XYAY&PjrLK98pQOIihnWQ4eRJKBl@n{IJgCu4& z3iC&g1|6lz%rPS>yuhhJN67$BktA66M1j;yliuXPjzNK4{X%yL78hHxbB_S zpMQP0LY%8Ej&G|zuK$O?-Y?&h$a_L*uDtD~>=1qP_ks1nwkkf?8{ZPI#-1|@RQ4Pa zbdkprBuzv`a>Vbk3G7%;ggt6tbDm+}^i8g2oR96#>$09QeYv~pQ8er>M=!D9YJLC3 zD&=mytgrfNU&~LctWvpW(U*VMphwO8V%f-xfJ=u_4LG*l@ppgJU1>7+UMsX8 z#pEb$KXXd@4sfdLFRjvc@D1TsLiT5~b?YrfuWJOa*&M#=udb*3eXF$ntJ|Hd-a}q~ z!S@aKWP3iow@>)m|LsM*S*sCozrd=nwyL@Y!y^43xQO>Bw1G8R#IQz@J3=WraLO(? zC2N5}ngScn+LI_D!k-$XPPR5v)~K12i&_9FkO;oU{Tt?}6Zi;d&KyNP8v9%3D9gL_ zm0VpnUgs@OiNY8bmJ~}-PJKAi{DpA2g{iCJ=QsE8CGe@M*8`hEI==J_#b3Hveqd?$ zc-=s#t2?XmO1e4!_X{rDn@4>4x5hRb8=Dlo@LD|SHNJMSR-UYzEp5=0_f~a%(v74~ zIvdt37yFc-uwth(RISUi_={RX3h8OZnb0>k?|r?U2vKZdb6IJFmH|v@ZkC5)-Ps9j zXXHWk74j3Ss?~m;eY-=W*3W0(b9dvu;d}Xk+1n>W{E}W?U%|0cu1l|f$%-id!gW&N zjr&Uu8GK9HkQI@Gx=imk(&mM6_h ze0IV~f^uoN6YA(8upHj4KT5KS?;R_*t{i|dviEA1=c3xprk($sA`{MUWS->N2hQ>xnI%<&iI278^N9v8P=U)4>1 z<=$}r6?|o)`JMfDu6l3BzCwv5x@vVTtC{eFTt!Y=&j#7##oAA8)RJJm_)Pox1D~u{ zv~(MOu;8?T1A>e54hS5N^}6ObDeMVitUivvu0H>)N}ueU#ChFE`j#(Vp#P>j}xb(Bry3JPxC6*2!HyHbA@T!0GW1~8=n=0`zws6QX zPbqC8@WYpzR$rK+MpNQ7OFe{W`zAV-Uh&>n{dP26@34hN{JDOExL88BQ%;M-Zf4fR zF#E#=2j$*ws{ej~fLD55utQ$LBb)t0!cfZYprYjCJYQ1Xl|*Vh36`cmgPoIcy60V- zE$%o*A2?+Ld!D#QSzhv9FCt@jRR&IFr2sA@HCWK}K-1>@{r9p`Pg8PVa+Vkj3T)xr zxG%FyC}C!S5(S)EJnxi1xwMbhrIr8l5>aCncKgN6*DRXw3$8@|cD?$)yxt8g4DewK za=m+MRRKUk)xo>y+nx@tzLPgLArFG4# zuxC<^=LBqayw41u>t<5#WnRlEDrkUP)|GxQ?Yv6uC2!t{MxS^ga>?a0S(#O0d&O!` zwm3Kn@N$BT`E&(vMzJ2jH>#S(oN zUBl~UweyW0YriD(*}cu8gEf@+L#UnlEU_veK)KN=I6>*_nfK>j*S@{4))k{ zXZsjINTF`$Gn0+)(pqE1Tr5B{ zK~J(OU&7MDJhQtz7;GyDYi1IFs-H@LX|Vp>mJ*!5tH4Sy`!oUIc1QMv5E?DNd^#d5 zI+dF};f>^K&#Q|jfHUgZdpV2^Y7slkiqyvlb^8|2#94}Qzx0>!%|%}4)x!~J;4;dJUKNeR|QPlV{B|0QQPV>HN%h0!-=Z0jiF2k_bvyP|M zOBy{uM_&-GYovdJS}I*SpI^{%l%;$vf0@fsW-V&jF7kqQ4=r=0$2dpYU4gr(pnG+0 z_T-_EoA3NWdJfqX)Gq7v*=%7pfVlNovD4s+~neGgi8+`d<@6$Cmxq*(qV^Xp&Q=dip&=<uadYL4!2ayNapn5xZ}e6ZFaSAfE}SUs(!-(Tq%Shb@k&|&GM@Rdaak3?_Z z*Q%srCF?)yU2T3xA-1UMbhUIZ5?-t%mG@ILUue`KBi_Ye=+fDg3r93ML|!PWh+ZCU zEJ(VtDDwH}* zDtIeb<<{B6uUzjD{OU*6(M7Z$XA_t46%O`S3T)3b+L#(%HddC%3{6xg#lL>)85Eyslpt|=*P6!h lb6la6jWT;`5_neFKFueOHytUBSwmE?8ha*@5ekgt{{#8Rm%9J} literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Runtime.xml b/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Runtime.xml new file mode 100644 index 000000000..93cb00d74 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Runtime.xml @@ -0,0 +1,56 @@ + + + + System.Runtime + + + + Defines a provider for progress updates. + The type of progress update value. + + + Reports a progress update. + The value of the updated progress. + + + Identities the async state machine type for this method. + + + Identities the state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + Gets the type that implements the state machine. + + + Initializes the attribute. + The type that implements the state machine. + + + + Allows you to obtain the method or property name of the caller to the method. + + + + + Allows you to obtain the line number in the source file at which the method is called. + + + + + Allows you to obtain the full path of the source file that contains the caller. + This is the file path at the time of compile. + + + + Identities the iterator state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Threading.Tasks.dll b/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..a089d474db56cd4f61044339689819946c04e381 GIT binary patch literal 164544 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Threading.Tasks.xml b/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Threading.Tasks.xml new file mode 100644 index 000000000..6c770122e --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/sl4/System.Threading.Tasks.xml @@ -0,0 +1,8969 @@ + + + + System.Threading.Tasks + + + + Represents one or more errors that occur during application execution. + + is used to consolidate multiple failures into a single, throwable + exception object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with + a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error + message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + The argument + is null. + + + + Initializes a new instance of the class with + references to the inner exceptions that are the cause of this exception. + + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with + references to the inner exceptions that are the cause of this exception. + + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with a specified error + message and references to the inner exceptions that are the cause of this exception. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Initializes a new instance of the class with a specified error + message and references to the inner exceptions that are the cause of this exception. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Allocates a new aggregate exception with the specified message and list of inner exceptions. + + The error message that explains the reason for the exception. + The exceptions that are the cause of the current exception. + The argument + is null. + An element of is + null. + + + + Returns the that is the root cause of this exception. + + + + + Invokes a handler on each contained by this . + + The predicate to execute for each exception. The predicate accepts as an + argument the to be processed and returns a Boolean to indicate + whether the exception was handled. + + Each invocation of the returns true or false to indicate whether the + was handled. After all invocations, if any exceptions went + unhandled, all unhandled exceptions will be put into a new + which will be thrown. Otherwise, the method simply returns. If any + invocations of the throws an exception, it will halt the processing + of any more exceptions and immediately propagate the thrown exception as-is. + + An exception contained by this was not handled. + The argument is + null. + + + + Flattens an instances into a single, new instance. + + A new, flattened . + + If any inner exceptions are themselves instances of + , this method will recursively flatten all of them. The + inner exceptions returned in the new + will be the union of all of the the inner exceptions from exception tree rooted at the provided + instance. + + + + + Creates and returns a string representation of the current . + + A string representation of the current exception. + + + + Gets a read-only collection of the instances that caused the + current exception. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to One or more errors occurred.. + + + + + Looks up a localized string similar to An element of innerExceptions was null.. + + + + + Looks up a localized string similar to {0}{1}---> (Inner Exception #{2}) {3}{4}{5}. + + + + + Looks up a localized string similar to No tokens were supplied.. + + + + + Looks up a localized string similar to The CancellationTokenSource associated with this CancellationToken has been disposed.. + + + + + Looks up a localized string similar to The CancellationTokenSource has been disposed.. + + + + + Looks up a localized string similar to The SyncRoot property may not be used for the synchronization of concurrent collections.. + + + + + Looks up a localized string similar to The array is multidimensional, or the type parameter for the set cannot be cast automatically to the type of the destination array.. + + + + + Looks up a localized string similar to The index is equal to or greater than the length of the array, or the number of elements in the dictionary is greater than the available space from index to the end of the destination array.. + + + + + Looks up a localized string similar to The capacity argument must be greater than or equal to zero.. + + + + + Looks up a localized string similar to The concurrencyLevel argument must be positive.. + + + + + Looks up a localized string similar to The index argument is less than zero.. + + + + + Looks up a localized string similar to TKey is a reference type and item.Key is null.. + + + + + Looks up a localized string similar to The key already existed in the dictionary.. + + + + + Looks up a localized string similar to The source argument contains duplicate keys.. + + + + + Looks up a localized string similar to The key was of an incorrect type for this dictionary.. + + + + + Looks up a localized string similar to The value was of an incorrect type for this dictionary.. + + + + + Looks up a localized string similar to The lazily-initialized type does not have a public, parameterless constructor.. + + + + + Looks up a localized string similar to ValueFactory returned null.. + + + + + Looks up a localized string similar to The spinCount argument must be in the range 0 to {0}, inclusive.. + + + + + Looks up a localized string similar to There are too many threads currently waiting on the event. A maximum of {0} waiting threads are supported.. + + + + + Looks up a localized string similar to The event has been disposed.. + + + + + Looks up a localized string similar to The operation was canceled.. + + + + + Looks up a localized string similar to The condition argument is null.. + + + + + Looks up a localized string similar to The timeout must represent a value between -1 and Int32.MaxValue, inclusive.. + + + + + Looks up a localized string similar to The specified TaskContinuationOptions combined LongRunning and ExecuteSynchronously. Synchronous continuations should not be long running.. + + + + + Looks up a localized string similar to The specified TaskContinuationOptions excluded all continuation kinds.. + + + + + Looks up a localized string similar to (Internal)An attempt was made to create a LongRunning SelfReplicating task.. + + + + + Looks up a localized string similar to The value needs to translate in milliseconds to -1 (signifying an infinite timeout), 0 or a positive integer less than or equal to Int32.MaxValue.. + + + + + Looks up a localized string similar to The value needs to be either -1 (signifying an infinite timeout), 0 or a positive integer.. + + + + + Looks up a localized string similar to A task may only be disposed if it is in a completion state (RanToCompletion, Faulted or Canceled).. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.LongRunning in calls to FromAsync.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.PreferFairness in calls to FromAsync.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.SelfReplicating in calls to FromAsync.. + + + + + Looks up a localized string similar to FromAsync was called with a TaskManager that had already shut down.. + + + + + Looks up a localized string similar to The tasks argument contains no tasks.. + + + + + Looks up a localized string similar to It is invalid to exclude specific continuation kinds for continuations off of multiple tasks.. + + + + + Looks up a localized string similar to The tasks argument included a null value.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task that was already started.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a continuation task.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task not bound to a delegate, such as the task returned from an asynchronous method.. + + + + + Looks up a localized string similar to RunSynchronously may not be called on a task that has already completed.. + + + + + Looks up a localized string similar to Start may not be called on a task that was already started.. + + + + + Looks up a localized string similar to Start may not be called on a continuation task.. + + + + + Looks up a localized string similar to Start may not be called on a task with null action.. + + + + + Looks up a localized string similar to Start may not be called on a promise-style task.. + + + + + Looks up a localized string similar to Start may not be called on a task that has completed.. + + + + + Looks up a localized string similar to The task has been disposed.. + + + + + Looks up a localized string similar to The tasks array included at least one null element.. + + + + + Looks up a localized string similar to The awaited task has not yet completed.. + + + + + Looks up a localized string similar to A task was canceled.. + + + + + Looks up a localized string similar to The exceptions collection was empty.. + + + + + Looks up a localized string similar to The exceptions collection included at least one null element.. + + + + + Looks up a localized string similar to A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.. + + + + + Looks up a localized string similar to (Internal)Expected an Exception or an IEnumerable<Exception>. + + + + + Looks up a localized string similar to ExecuteTask may not be called for a task which was already executed.. + + + + + Looks up a localized string similar to ExecuteTask may not be called for a task which was previously queued to a different TaskScheduler.. + + + + + Looks up a localized string similar to The current SynchronizationContext may not be used as a TaskScheduler.. + + + + + Looks up a localized string similar to The TryExecuteTaskInline call to the underlying scheduler succeeded, but the task body was not invoked.. + + + + + Looks up a localized string similar to An exception was thrown by a TaskScheduler.. + + + + + Looks up a localized string similar to It is invalid to specify TaskCreationOptions.SelfReplicating for a Task<TResult>.. + + + + + Looks up a localized string similar to {Not yet computed}. + + + + + Looks up a localized string similar to A task's Exception may only be set directly if the task was created without a function.. + + + + + Looks up a localized string similar to An attempt was made to transition a task to a final state when it had already completed.. + + + + + Represents a thread-safe collection of keys and values. + + The type of the keys in the dictionary. + The type of the values in the dictionary. + + All public and protected members of are thread-safe and may be used + concurrently from multiple threads. + + + + + Initializes a new instance of the + class that is empty, has the default concurrency level, has the default initial capacity, and + uses the default comparer for the key type. + + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level and capacity, and uses the default + comparer for the key type. + + The estimated number of threads that will update the + concurrently. + The initial number of elements that the + can contain. + is + less than 1. + is less than + 0. + + + + Initializes a new instance of the + class that contains elements copied from the specified , has the default concurrency + level, has the default initial capacity, and uses the default comparer for the key type. + + The whose elements are copied to + the new + . + is a null reference + (Nothing in Visual Basic). + contains one or more + duplicate keys. + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level and capacity, and uses the specified + . + + The + implementation to use when comparing keys. + is a null reference + (Nothing in Visual Basic). + + + + Initializes a new instance of the + class that contains elements copied from the specified , has the default concurrency level, has the default + initial capacity, and uses the specified + . + + The whose elements are copied to + the new + . + The + implementation to use when comparing keys. + is a null reference + (Nothing in Visual Basic). -or- + is a null reference (Nothing in Visual Basic). + + + + + Initializes a new instance of the + class that contains elements copied from the specified , + has the specified concurrency level, has the specified initial capacity, and uses the specified + . + + The estimated number of threads that will update the + concurrently. + The whose elements are copied to the new + . + The implementation to use + when comparing keys. + + is a null reference (Nothing in Visual Basic). + -or- + is a null reference (Nothing in Visual Basic). + + + is less than 1. + + contains one or more duplicate keys. + + + + Initializes a new instance of the + class that is empty, has the specified concurrency level, has the specified initial capacity, and + uses the specified . + + The estimated number of threads that will update the + concurrently. + The initial number of elements that the + can contain. + The + implementation to use when comparing keys. + + is less than 1. -or- + is less than 0. + + is a null reference + (Nothing in Visual Basic). + + + + Attempts to add the specified key and value to the . + + The key of the element to add. + The value of the element to add. The value can be a null reference (Nothing + in Visual Basic) for reference types. + true if the key/value pair was added to the + successfully; otherwise, false. + is null reference + (Nothing in Visual Basic). + The + contains too many elements. + + + + Determines whether the contains the specified + key. + + The key to locate in the . + true if the contains an element with + the specified key; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Attempts to remove and return the the value with the specified key from the + . + + The key of the element to remove and return. + When this method returns, contains the object removed from the + or the default value of + if the operation failed. + true if an object was removed successfully; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Removes the specified key from the dictionary if it exists and returns its associated value. + If matchValue flag is set, the key will be removed only if is associated with a particular + value. + + The key to search for and remove if it exists. + The variable into which the removed value, if found, is stored. + Whether removal of the key is conditional on its value. + The conditional value to compare against if is true + + + + + Attempts to get the value associated with the specified key from the . + + The key of the value to get. + When this method returns, contains the object from + the + with the spedified key or the default value of + , if the operation failed. + true if the key was found in the ; + otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + + Compares the existing value for the specified key with a specified value, and if they’re equal, + updates the key with a third value. + + The key whose value is compared with and + possibly replaced. + The value that replaces the value of the element with if the comparison results in equality. + The value that is compared to the value of the element with + . + true if the value with was equal to and replaced with ; otherwise, + false. + is a null + reference. + + + + Removes all keys and values from the . + + + + + Copies the elements of the to an array of + type , starting at the + specified array index. + + The one-dimensional array of type + that is the destination of the elements copied from the . The array must have zero-based indexing. + The zero-based index in at which copying + begins. + is a null reference + (Nothing in Visual Basic). + is less than + 0. + is equal to or greater than + the length of the . -or- The number of elements in the source + is greater than the available space from to the end of the destination + . + + + + Copies the key and value pairs stored in the to a + new array. + + A new array containing a snapshot of key and value pairs copied from the . + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToPairs. + + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToEntries. + + + + + Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. + + Important: the caller must hold all locks in m_locks before calling CopyToObjects. + + + + Returns an enumerator that iterates through the . + An enumerator for the . + + The enumerator returned from the dictionary is safe to use concurrently with + reads and writes to the dictionary, however it does not represent a moment-in-time snapshot + of the dictionary. The contents exposed through the enumerator may contain modifications + made to the dictionary after was called. + + + + + Shared internal implementation for inserts and updates. + If key exists, we always return false; and if updateIfExists == true we force update with value; + If key doesn't exist, we always add value and return true; + + + + + Adds a key/value pair to the + if the key does not already exist. + + The key of the element to add. + The function used to generate a value for the key + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The value for the key. This will be either the existing value for the key if the + key is already in the dictionary, or the new value for the key as returned by valueFactory + if the key was not in the dictionary. + + + + Adds a key/value pair to the + if the key does not already exist. + + The key of the element to add. + the value to be added, if the key does not already exist + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The value for the key. This will be either the existing value for the key if the + key is already in the dictionary, or the new value if the key was not in the dictionary. + + + + Adds a key/value pair to the if the key does not already + exist, or updates a key/value pair in the if the key + already exists. + + The key to be added or whose value should be updated + The function used to generate a value for an absent key + The function used to generate a new value for an existing key + based on the key's existing value + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The new value for the key. This will be either be the result of addValueFactory (if the key was + absent) or the result of updateValueFactory (if the key was present). + + + + Adds a key/value pair to the if the key does not already + exist, or updates a key/value pair in the if the key + already exists. + + The key to be added or whose value should be updated + The value to be added for an absent key + The function used to generate a new value for an existing key based on + the key's existing value + is a null reference + (Nothing in Visual Basic). + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + The new value for the key. This will be either be the result of addValueFactory (if the key was + absent) or the result of updateValueFactory (if the key was present). + + + + Adds the specified key and value to the . + + The object to use as the key of the element to add. + The object to use as the value of the element to add. + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + + An element with the same key already exists in the . + + + + Removes the element with the specified key from the . + + The key of the element to remove. + true if the element is successfully remove; otherwise false. This method also returns + false if + was not found in the original . + + is a null reference + (Nothing in Visual Basic). + + + + Adds the specified value to the + with the specified key. + + The + structure representing the key and value to add to the . + The of is null. + The + contains too many elements. + An element with the same key already exists in the + + + + + Determines whether the + contains a specific key and value. + + The + structure to locate in the . + true if the is found in the ; otherwise, false. + + + + Removes a key and value from the dictionary. + + The + structure representing the key and value to remove from the . + true if the key and value represented by is successfully + found and removed; otherwise, false. + The Key property of is a null reference (Nothing in Visual Basic). + + + Returns an enumerator that iterates through the . + An enumerator for the . + + The enumerator returned from the dictionary is safe to use concurrently with + reads and writes to the dictionary, however it does not represent a moment-in-time snapshot + of the dictionary. The contents exposed through the enumerator may contain modifications + made to the dictionary after was called. + + + + + Adds the specified key and value to the dictionary. + + The object to use as the key. + The object to use as the value. + is a null reference + (Nothing in Visual Basic). + The dictionary contains too many + elements. + + is of a type that is not assignable to the key type of the . -or- + is of a type that is not assignable to , + the type of values in the . + -or- A value with the same key already exists in the . + + + + + Gets whether the contains an + element with the specified key. + + The key to locate in the . + true if the contains + an element with the specified key; otherwise, false. + is a null reference + (Nothing in Visual Basic). + + + Provides an for the + . + An for the . + + + + Removes the element with the specified key from the . + + The key of the element to remove. + is a null reference + (Nothing in Visual Basic). + + + + Copies the elements of the to an array, starting + at the specified array index. + + The one-dimensional array that is the destination of the elements copied from + the . The array must have zero-based + indexing. + The zero-based index in at which copying + begins. + is a null reference + (Nothing in Visual Basic). + is less than + 0. + is equal to or greater than + the length of the . -or- The number of elements in the source + is greater than the available space from to the end of the destination + . + + + + Replaces the internal table with a larger one. To prevent multiple threads from resizing the + table as a result of races, the table of buckets that was deemed too small is passed in as + an argument to GrowTable(). GrowTable() obtains a lock, and then checks whether the bucket + table has been replaced in the meantime or not. + + Reference to the bucket table that was deemed too small. + + + + Computes the bucket and lock number for a particular key. + + + + + Acquires all locks for this hash table, and increments locksAcquired by the number + of locks that were successfully acquired. The locks are acquired in an increasing + order. + + + + + Acquires a contiguous range of locks for this hash table, and increments locksAcquired + by the number of locks that were successfully acquired. The locks are acquired in an + increasing order. + + + + + Releases a contiguous range of locks. + + + + + Gets a collection containing the keys in the dictionary. + + + + + Gets a collection containing the values in the dictionary. + + + + + A helper method for asserts. + + + + + Get the data array to be serialized + + + + + Construct the dictionary from a previously seiralized one + + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The value associated with the specified key. If the specified key is not found, a get + operation throws a + , and a set operation creates a new + element with the specified key. + is a null reference + (Nothing in Visual Basic). + The property is retrieved and + + does not exist in the collection. + + + + Gets the number of key/value pairs contained in the . + + The dictionary contains too many + elements. + The number of key/value paris contained in the . + Count has snapshot semantics and represents the number of items in the + at the moment when Count was accessed. + + + + Gets a value that indicates whether the is empty. + + true if the is empty; otherwise, + false. + + + + Gets a collection containing the keys in the . + + An containing the keys in the + . + + + + Gets a collection containing the values in the . + + An containing the values in + the + . + + + + Gets a value indicating whether the dictionary is read-only. + + true if the is + read-only; otherwise, false. For , this property always returns + false. + + + + Gets a value indicating whether the has a fixed size. + + true if the has a + fixed size; otherwise, false. For , this property always + returns false. + + + + Gets a value indicating whether the is read-only. + + true if the is + read-only; otherwise, false. For , this property always + returns false. + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + + Gets an containing the values in the . + + An containing the values in the . + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The value associated with the specified key, or a null reference (Nothing in Visual Basic) + if is not in the dictionary or is of a type that is + not assignable to the key type of the . + is a null reference + (Nothing in Visual Basic). + + A value is being assigned, and is of a type that is not assignable to the + key type of the . -or- A value is being + assigned, and is of a type that is not assignable to the value type + of the + + + + + Gets a value indicating whether access to the is + synchronized with the SyncRoot. + + true if access to the is synchronized + (thread safe); otherwise, false. For , this property always + returns false. + + + + Gets an object that can be used to synchronize access to the . This property is not supported. + + The SyncRoot property is not supported. + + + + The number of concurrent writes for which to optimize by default. + + + + + A node in a singly-linked list representing a particular hash table bucket. + + + + + A private class to represent enumeration over the dictionary that implements the + IDictionaryEnumerator interface. + + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + Represents an asynchronous method builder. + + + A cached VoidTaskResult task used for builders that complete synchronously. + + + The generic builder object to which this non-generic instance delegates. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state. + + The builder is not initialized. + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + + Gets the for this builder. + The representing the builder's asynchronous operation. + The builder is not initialized. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + Holds state related to the builder's IAsyncStateMachine. + This is a mutable struct. Be very delicate with it. + + + A reference to the heap-allocated state machine object associated with this builder. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument is null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + + Gets the Action to use with an awaiter's OnCompleted or UnsafeOnCompleted method. + On first invocation, the supplied state machine will be boxed. + + Specifies the type of the method builder used. + Specifies the type of the state machine used. + The builder. + The state machine. + An Action to provide to the awaiter. + + + Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext. + + + The context with which to run MoveNext. + + + The state machine whose MoveNext method should be invoked. + + + Initializes the runner. + The context with which to run MoveNext. + + + Invokes MoveNext under the provided context. + + + Cached delegate used with ExecutionContext.Run. + + + Invokes the MoveNext method on the supplied IAsyncStateMachine. + The IAsyncStateMachine machine instance. + + + + Provides a builder for asynchronous methods that return void. + This type is intended for compiler use only. + + + + The synchronization context associated with this operation. + + + State related to the IAsyncStateMachine. + + + An object used by the debugger to uniquely identify this builder. Lazily initialized. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Registers with UnobservedTaskException to suppress exception crashing. + + + Non-zero if PreventUnobservedTaskExceptions has already been invoked. + + + Initializes a new . + The initialized . + + + Initializes the . + The synchronizationContext associated with this operation. This may be null. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument was null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + Completes the method builder successfully. + + + Faults the method builder with an exception. + The exception that is the cause of this fault. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + + + Notifies the current synchronization context that the operation completed. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger and only in a single-threaded manner. + + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder{TResult} is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + A cached task for default(TResult). + + + State related to the IAsyncStateMachine. + + + The lazily-initialized task. + Must be named m_task for debugger step-over to work correctly. + + + The lazily-initialized task completion source. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state with the specified result. + + The result to use to complete the task. + The task has already completed. + + + + Completes the builder by using either the supplied completed task, or by completing + the builder's previously accessed task using default(TResult). + + A task already completed with the value default(TResult). + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + This should only be invoked from within an asynchronous method, + and only by the debugger. + + + + + Gets a task for the specified result. This will either + be a cached or new task, never null. + + The result for which we need a task. + The completed task containing the result. + + + Gets the lazily-initialized TaskCompletionSource. + + + Gets the for this builder. + The representing the builder's asynchronous operation. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + Provides a base class used to cache tasks of a specific return type. + Specifies the type of results the cached tasks return. + + + + A singleton cache for this result type. + This may be null if there are no cached tasks for this TResult. + + + + Creates a non-disposable task. + The result for the task. + The cacheable task. + + + Creates a cache. + A task cache for this result type. + + + Gets a cached task if one exists. + The result for which we want a cached task. + A cached task if one exists; otherwise, null. + + + Provides a cache for Boolean tasks. + + + A true task. + + + A false task. + + + Gets a cached task for the Boolean result. + true or false + A cached task for the Boolean result. + + + Provides a cache for zero Int32 tasks. + + + The minimum value, inclusive, for which we want a cached task. + + + The maximum value, exclusive, for which we want a cached task. + + + The cache of Task{Int32}. + + + Creates an array of cached tasks for the values in the range [INCLUSIVE_MIN,EXCLUSIVE_MAX). + + + Gets a cached task for the zero Int32 result. + The integer value + A cached task for the Int32 result or null if not cached. + + + + Represents state machines generated for asynchronous methods. + This type is intended for compiler use only. + + + + Moves the state machine to its next state. + + + Configures the state machine with a heap-allocated replica. + The heap-allocated replica. + + + + Represents an awaiter used to schedule continuations when an await operation completes. + + + + + Represents an operation that will schedule continuations when the operation completes. + + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + Unlike OnCompleted, UnsafeOnCompleted need not propagate ExecutionContext information. + + + Used with Task(of void) + + + + An interface similar to the one added in .NET 4.0. + + + + The exception that is thrown in a thread upon cancellation of an operation that the thread was executing. + + + Initializes the exception. + + + Initializes the exception. + The error message that explains the reason for the exception. + + + Initializes the exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + Initializes the exception. + A cancellation token associated with the operation that was canceled. + + + Initializes the exception. + The error message that explains the reason for the exception. + A cancellation token associated with the operation that was canceled. + + + Initializes the exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + A cancellation token associated with the operation that was canceled. + + + Gets a token associated with the operation that was canceled. + + + + A dummy replacement for the .NET internal class StackCrawlMark. + + + + + Propogates notification that operations should be canceled. + + + + A may be created directly in an unchangeable canceled or non-canceled state + using the CancellationToken's constructors. However, to have a CancellationToken that can change + from a non-canceled to a canceled state, + CancellationTokenSource must be used. + CancellationTokenSource exposes the associated CancellationToken that may be canceled by the source through its + Token property. + + + Once canceled, a token may not transition to a non-canceled state, and a token whose + is false will never change to one that can be canceled. + + + All members of this struct are thread-safe and may be used concurrently from multiple threads. + + + + + + Internal constructor only a CancellationTokenSource should create a CancellationToken + + + + + Initializes the CancellationToken. + + + The canceled state for the token. + + + Tokens created with this constructor will remain in the canceled state specified + by the parameter. If is false, + both and will be false. + If is true, + both and will be true. + + + + + Registers a delegate that will be called when this CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + A Boolean value that indicates whether to capture + the current SynchronizationContext and use it + when invoking the . + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The state to pass to the when the delegate is invoked. This may be null. + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Registers a delegate that will be called when this + CancellationToken is canceled. + + + + If this token is already in the canceled state, the + delegate will be run immediately and synchronously. Any exception the delegate generates will be + propogated out of this method call. + + + The delegate to be executed when the CancellationToken is canceled. + The state to pass to the when the delegate is invoked. This may be null. + A Boolean value that indicates whether to capture + the current SynchronizationContext and use it + when invoking the . + The instance that can + be used to deregister the callback. + is null. + The associated CancellationTokenSource has been disposed. + + + + Determines whether the current CancellationToken instance is equal to the + specified token. + + The other CancellationToken to which to compare this + instance. + True if the instances are equal; otherwise, false. Two tokens are equal if they are associated + with the same CancellationTokenSource or if they were both constructed + from public CancellationToken constructors and their values are equal. + + + + Determines whether the current CancellationToken instance is equal to the + specified . + + The other object to which to compare this instance. + True if is a CancellationToken + and if the two instances are equal; otherwise, false. Two tokens are equal if they are associated + with the same CancellationTokenSource or if they were both constructed + from public CancellationToken constructors and their values are equal. + An associated CancellationTokenSource has been disposed. + + + + Serves as a hash function for a CancellationToken. + + A hash code for the current CancellationToken instance. + + + + Determines whether two CancellationToken instances are equal. + + The first instance. + The second instance. + True if the instances are equal; otherwise, false. + An associated CancellationTokenSource has been disposed. + + + + Determines whether two CancellationToken instances are not equal. + + The first instance. + The second instance. + True if the instances are not equal; otherwise, false. + An associated CancellationTokenSource has been disposed. + + + + Throws a OperationCanceledException if + this token has had cancellation requested. + + + This method provides functionality equivalent to: + + if (token.IsCancellationRequested) + throw new OperationCanceledException(token); + + + The token has had cancellation requested. + The associated CancellationTokenSource has been disposed. + + + + Returns an empty CancellationToken value. + + + The value returned by this property will be non-cancelable by default. + + + + + Gets whether cancellation has been requested for this token. + + Whether cancellation has been requested for this token. + + + This property indicates whether cancellation has been requested for this token, + either through the token initially being construted in a canceled state, or through + calling Cancel + on the token's associated . + + + If this property is true, it only guarantees that cancellation has been requested. + It does not guarantee that every registered handler + has finished executing, nor that cancellation requests have finished propagating + to all registered handlers. Additional synchronization may be required, + particularly in situations where related objects are being canceled concurrently. + + + + + + Gets whether this token is capable of being in the canceled state. + + + If CanBeCanceled returns false, it is guaranteed that the token will never transition + into a canceled state, meaning that will never + return true. + + + + + Gets a that is signaled when the token is canceled. + + Accessing this property causes a WaitHandle + to be instantiated. It is preferable to only use this property when necessary, and to then + dispose the associated instance at the earliest opportunity (disposing + the source will dispose of this allocated handle). The handle should not be closed or disposed directly. + + The associated CancellationTokenSource has been disposed. + + + + Represents a callback delegate that has been registered with a CancellationToken. + + + To unregister a callback, dispose the corresponding Registration instance. + + + + + Attempts to deregister the item. If it's already being run, this may fail. + Entails a full memory fence. + + True if the callback was found and deregistered, false otherwise. + + + + Disposes of the registration and unregisters the target callback from the associated + CancellationToken. + If the target callback is currently executing this method will wait until it completes, except + in the degenerate cases where a callback method deregisters itself. + + + + + Determines whether two CancellationTokenRegistration + instances are equal. + + The first instance. + The second instance. + True if the instances are equal; otherwise, false. + + + + Determines whether two CancellationTokenRegistration instances are not equal. + + The first instance. + The second instance. + True if the instances are not equal; otherwise, false. + + + + Determines whether the current CancellationTokenRegistration instance is equal to the + specified . + + The other object to which to compare this instance. + True, if both this and are equal. False, otherwise. + Two CancellationTokenRegistration instances are equal if + they both refer to the output of a single call to the same Register method of a + CancellationToken. + + + + + Determines whether the current CancellationToken instance is equal to the + specified . + + The other CancellationTokenRegistration to which to compare this instance. + True, if both this and are equal. False, otherwise. + Two CancellationTokenRegistration instances are equal if + they both refer to the output of a single call to the same Register method of a + CancellationToken. + + + + + Serves as a hash function for a CancellationTokenRegistration.. + + A hash code for the current CancellationTokenRegistration instance. + + + + Signals to a that it should be canceled. + + + + is used to instantiate a + (via the source's Token property) + that can be handed to operations that wish to be notified of cancellation or that can be used to + register asynchronous operations for cancellation. That token may have cancellation requested by + calling to the source's Cancel + method. + + + All members of this class, except Dispose, are thread-safe and may be used + concurrently from multiple threads. + + + + + The ID of the thread currently executing the main body of CTS.Cancel() + this helps us to know if a call to ctr.Dispose() is running 'within' a cancellation callback. + This is updated as we move between the main thread calling cts.Cancel() and any syncContexts that are used to + actually run the callbacks. + + + + Initializes the . + + + + + Communicates a request for cancellation. + + + + The associated will be + notified of the cancellation and will transition to a state where + IsCancellationRequested returns true. + Any callbacks or cancelable operations + registered with the will be executed. + + + Cancelable operations and callbacks registered with the token should not throw exceptions. + However, this overload of Cancel will aggregate any exceptions thrown into a , + such that one callback throwing an exception will not prevent other registered callbacks from being executed. + + + The that was captured when each callback was registered + will be reestablished when the callback is invoked. + + + An aggregate exception containing all the exceptions thrown + by the registered callbacks on the associated . + This has been disposed. + + + + Communicates a request for cancellation. + + + + The associated will be + notified of the cancellation and will transition to a state where + IsCancellationRequested returns true. + Any callbacks or cancelable operations + registered with the will be executed. + + + Cancelable operations and callbacks registered with the token should not throw exceptions. + If is true, an exception will immediately propagate out of the + call to Cancel, preventing the remaining callbacks and cancelable operations from being processed. + If is false, this overload will aggregate any + exceptions thrown into a , + such that one callback throwing an exception will not prevent other registered callbacks from being executed. + + + The that was captured when each callback was registered + will be reestablished when the callback is invoked. + + + Specifies whether exceptions should immediately propagate. + An aggregate exception containing all the exceptions thrown + by the registered callbacks on the associated . + This has been disposed. + + + + Releases the resources used by this . + + + This method is not thread-safe for any other concurrent calls. + + + + + Throws an exception if the source has been disposed. + + + + + InternalGetStaticSource() + + Whether the source should be set. + A static source to be shared among multiple tokens. + + + + Registers a callback object. If cancellation has already occurred, the + callback will have been run by the time this method returns. + + + + + + + + + + Invoke the Canceled event. + + + The handlers are invoked synchronously in LIFO order. + + + + + Creates a CancellationTokenSource that will be in the canceled state + when any of the source tokens are in the canceled state. + + The first CancellationToken to observe. + The second CancellationToken to observe. + A CancellationTokenSource that is linked + to the source tokens. + A CancellationTokenSource associated with + one of the source tokens has been disposed. + + + + Creates a CancellationTokenSource that will be in the canceled state + when any of the source tokens are in the canceled state. + + The CancellationToken instances to observe. + A CancellationTokenSource that is linked + to the source tokens. + is null. + A CancellationTokenSource associated with + one of the source tokens has been disposed. + + + + Gets whether cancellation has been requested for this CancellationTokenSource. + + Whether cancellation has been requested for this CancellationTokenSource. + + + This property indicates whether cancellation has been requested for this token source, such as + due to a call to its + Cancel method. + + + If this property returns true, it only guarantees that cancellation has been requested. It does not + guarantee that every handler registered with the corresponding token has finished executing, nor + that cancellation requests have finished propagating to all registered handlers. Additional + synchronization may be required, particularly in situations where related objects are being + canceled concurrently. + + + + + + A simple helper to determine whether cancellation has finished. + + + + + A simple helper to determine whether disposal has occured. + + + + + The ID of the thread that is running callbacks. + + + + + Gets the CancellationToken + associated with this . + + The CancellationToken + associated with this . + The token source has been + disposed. + + + + + + + + + + + + + + The currently executing callback + + + + + A helper class for collating the various bits of information required to execute + cancellation callbacks. + + + + + InternalExecuteCallbackSynchronously_GeneralPath + This will be called on the target synchronization context, however, we still need to restore the required execution context + + + + + A sparsely populated array. Elements can be sparse and some null, but this allows for + lock-free additions and growth, and also for constant time removal (by nulling out). + + The kind of elements contained within. + + + + Allocates a new array with the given initial size. + + How many array slots to pre-allocate. + + + + Adds an element in the first available slot, beginning the search from the tail-to-head. + If no slots are available, the array is grown. The method doesn't return until successful. + + The element to add. + Information about where the add happened, to enable O(1) deregistration. + + + + The tail of the doubly linked list. + + + + + A struct to hold a link to the exact spot in an array an element was inserted, enabling + constant time removal later on. + + + + + A fragment of a sparsely populated array, doubly linked. + + The kind of elements contained within. + + + + Provides lazy initialization routines. + + + These routines avoid needing to allocate a dedicated, lazy-initialization instance, instead using + references to ensure targets have been initialized as they are accessed. + + + + + Initializes a target reference type with the type's default constructor if the target has not + already been initialized. + + The refence type of the reference to be initialized. + A reference of type to initialize if it has not + already been initialized. + The initialized reference of type . + Type does not have a default + constructor. + + Permissions to access the constructor of type were missing. + + + + This method may only be used on reference types. To ensure initialization of value + types, see other overloads of EnsureInitialized. + + + This method may be used concurrently by multiple threads to initialize . + In the event that multiple threads access this method concurrently, multiple instances of + may be created, but only one will be stored into . In such an occurrence, this method will not dispose of the + objects that were not stored. If such objects must be disposed, it is up to the caller to determine + if an object was not used and to then dispose of the object appropriately. + + + + + + Initializes a target reference type using the specified function if it has not already been + initialized. + + The reference type of the reference to be initialized. + The reference of type to initialize if it has not + already been initialized. + The invoked to initialize the + reference. + The initialized reference of type . + Type does not have a + default constructor. + returned + null. + + + This method may only be used on reference types, and may + not return a null reference (Nothing in Visual Basic). To ensure initialization of value types or + to allow null reference types, see other overloads of EnsureInitialized. + + + This method may be used concurrently by multiple threads to initialize . + In the event that multiple threads access this method concurrently, multiple instances of + may be created, but only one will be stored into . In such an occurrence, this method will not dispose of the + objects that were not stored. If such objects must be disposed, it is up to the caller to determine + if an object was not used and to then dispose of the object appropriately. + + + + + + Initialize the target using the given delegate (slow path). + + The reference type of the reference to be initialized. + The variable that need to be initialized + The delegate that will be executed to initialize the target + The initialized variable + + + + Initializes a target reference or value type with its default constructor if it has not already + been initialized. + + The type of the reference to be initialized. + A reference or value of type to initialize if it + has not already been initialized. + A reference to a boolean that determines whether the target has already + been initialized. + A reference to an object used as the mutually exclusive lock for initializing + . + The initialized value of type . + + + + Initializes a target reference or value type with a specified function if it has not already been + initialized. + + The type of the reference to be initialized. + A reference or value of type to initialize if it + has not already been initialized. + A reference to a boolean that determines whether the target has already + been initialized. + A reference to an object used as the mutually exclusive lock for initializing + . + The invoked to initialize the + reference or value. + The initialized value of type . + + + + Ensure the target is initialized and return the value (slow path). This overload permits nulls + and also works for value type targets. Uses the supplied function to create the value. + + The type of target. + A reference to the target to be initialized. + A reference to a location tracking whether the target has been initialized. + A reference to a location containing a mutual exclusive lock. + + The to invoke in order to produce the lazily-initialized value. + + The initialized object. + + + + Provides a slimmed down version of . + + + All public and protected members of are thread-safe and may be used + concurrently from multiple threads, with the exception of Dispose, which + must only be used when all other operations on the have + completed, and Reset, which should only be used when no other threads are + accessing the event. + + + + + Initializes a new instance of the + class with an initial state of nonsignaled. + + + + + Initializes a new instance of the + class with a Boolen value indicating whether to set the intial state to signaled. + + true to set the initial state signaled; false to set the initial state + to nonsignaled. + + + + Initializes a new instance of the + class with a Boolen value indicating whether to set the intial state to signaled and a specified + spin count. + + true to set the initial state to signaled; false to set the initial state + to nonsignaled. + The number of spin waits that will occur before falling back to a true + wait. + is less than + 0 or greater than the maximum allowed value. + + + + Initializes the internal state of the event. + + Whether the event is set initially or not. + The spin count that decides when the event will block. + + + + Helper to ensure the lock object is created before first use. + + + + + This method lazily initializes the event object. It uses CAS to guarantee that + many threads racing to call this at once don't result in more than one event + being stored and used. The event will be signaled or unsignaled depending on + the state of the thin-event itself, with synchronization taken into account. + + True if a new event was created and stored, false otherwise. + + + + Sets the state of the event to signaled, which allows one or more threads waiting on the event to + proceed. + + + + + Private helper to actually perform the Set. + + Indicates whether we are calling Set() during cancellation. + The object has been canceled. + + + + Sets the state of the event to nonsignaled, which causes threads to block. + + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + Blocks the current thread until the current is set. + + + The maximum number of waiters has been exceeded. + + + The caller of this method blocks indefinitely until the current instance is set. The caller will + return immediately if the event is currently in a set state. + + + + + Blocks the current thread until the current receives a signal, + while observing a . + + The to + observe. + + The maximum number of waiters has been exceeded. + + was + canceled. + + The caller of this method blocks indefinitely until the current instance is set. The caller will + return immediately if the event is currently in a set state. + + + + + Blocks the current thread until the current is set, using a + to measure the time interval. + + A that represents the number of milliseconds + to wait, or a that represents -1 milliseconds to wait indefinitely. + + true if the was set; otherwise, + false. + is a negative + number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater + than . + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + to measure the time interval, while observing a . + + A that represents the number of milliseconds + to wait, or a that represents -1 milliseconds to wait indefinitely. + + The to + observe. + true if the was set; otherwise, + false. + is a negative + number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater + than . + was canceled. + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + 32-bit signed integer to measure the time interval. + + The number of milliseconds to wait, or (-1) to wait indefinitely. + true if the was set; otherwise, + false. + is a + negative number other than -1, which represents an infinite time-out. + + The maximum number of waiters has been exceeded. + + + + + Blocks the current thread until the current is set, using a + 32-bit signed integer to measure the time interval, while observing a . + + The number of milliseconds to wait, or (-1) to wait indefinitely. + The to + observe. + true if the was set; otherwise, + false. + is a + negative number other than -1, which represents an infinite time-out. + + The maximum number of waiters has been exceeded. + + was canceled. + + + + Releases all resources used by the current instance of . + + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + When overridden in a derived class, releases the unmanaged resources used by the + , and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + Unlike most of the members of , is not + thread-safe and may not be used concurrently with other members of this instance. + + + + + Throw ObjectDisposedException if the MRES is disposed + + + + + Private helper method to wake up waiters when a cancellationToken gets canceled. + + + + + Private helper method for updating parts of a bit-string state value. + Mainly called from the IsSet and Waiters properties setters + + + Note: the parameter types must be int as CompareExchange cannot take a Uint + + The new value + The mask used to set the bits + + + + Private helper method - performs Mask and shift, particular helpful to extract a field from a packed word. + eg ExtractStatePortionAndShiftRight(0x12345678, 0xFF000000, 24) => 0x12, ie extracting the top 8-bits as a simple integer + + ?? is there a common place to put this rather than being private to MRES? + + + + + + + + + Performs a Mask operation, but does not perform the shift. + This is acceptable for boolean values for which the shift is unnecessary + eg (val & Mask) != 0 is an appropriate way to extract a boolean rather than using + ((val & Mask) >> shiftAmount) == 1 + + ?? is there a common place to put this rather than being private to MRES? + + + + + + + Helper function to measure and update the wait time + + The first time (in Ticks) observed when the wait started. + The orginal wait timeoutout in milliseconds. + The new wait time in milliseconds, -1 if the time expired, -2 if overflow in counters + has occurred. + + + + Gets the underlying object for this . + + The underlying event object fore this . + + Accessing this property forces initialization of an underlying event object if one hasn't + already been created. To simply wait on this , + the public Wait methods should be preferred. + + + + + Gets whether the event is set. + + true if the event has is set; otherwise, false. + + + + Gets the number of spin waits that will be occur before falling back to a true wait. + + + + + How many threads are waiting. + + + + + Provides support for spin-based waiting. + + + + encapsulates common spinning logic. On single-processor machines, yields are + always used instead of busy waits, and on computers with Intel™ processors employing Hyper-Threading™ + technology, it helps to prevent hardware thread starvation. SpinWait encapsulates a good mixture of + spinning and true yielding. + + + is a value type, which means that low-level code can utilize SpinWait without + fear of unnecessary allocation overheads. SpinWait is not generally useful for ordinary applications. + In most cases, you should use the synchronization classes provided by the .NET Framework, such as + . For most purposes where spin waiting is required, however, + the type should be preferred over the System.Threading.Thread.SpinWait method. + + + While SpinWait is designed to be used in concurrent applications, it is not designed to be + used from multiple threads concurrently. SpinWait's members are not thread-safe. If multiple + threads must spin, each should use its own instance of SpinWait. + + + + + + Performs a single spin. + + + This is typically called in a loop, and may change in behavior based on the number of times a + has been called thus far on this instance. + + + + + Resets the spin counter. + + + This makes and behave as though no calls + to had been issued on this instance. If a instance + is reused many times, it may be useful to reset it to avoid yielding too soon. + + + + + Spins until the specified condition is satisfied. + + A delegate to be executed over and over until it returns true. + The argument is null. + + + + Spins until the specified condition is satisfied or until the specified timeout is expired. + + A delegate to be executed over and over until it returns true. + + A that represents the number of milliseconds to wait, + or a TimeSpan that represents -1 milliseconds to wait indefinitely. + True if the condition is satisfied within the timeout; otherwise, false + The argument is null. + is a negative number + other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than + . + + + + Spins until the specified condition is satisfied or until the specified timeout is expired. + + A delegate to be executed over and over until it returns true. + The number of milliseconds to wait, or (-1) to wait indefinitely. + True if the condition is satisfied within the timeout; otherwise, false + The argument is null. + is a + negative number other than -1, which represents an infinite time-out. + + + + Gets the number of times has been called on this instance. + + + + + Gets whether the next call to will yield the processor, triggering a + forced context switch. + + Whether the next call to will yield the processor, triggering a + forced context switch. + + On a single-CPU machine, always yields the processor. On machines with + multiple CPUs, may yield after an unspecified number of calls. + + + + + A helper class to get the number of preocessors, it updates the numbers of processors every sampling interval + + + + + Gets the number of available processors + + + + + Gets whether the current machine has only a single processor. + + + + + Represents an asynchronous operation that produces a result at some time in the future. + + + The type of the result produced by this . + + + + instances may be created in a variety of ways. The most common approach is by + using the task's property to retrieve a instance that can be used to create tasks for several + purposes. For example, to create a that runs a function, the factory's StartNew + method may be used: + + // C# + var t = Task<int>.Factory.StartNew(() => GenerateResult()); + - or - + var t = Task.Factory.StartNew(() => GenerateResult()); + + ' Visual Basic + Dim t = Task<int>.Factory.StartNew(Function() GenerateResult()) + - or - + Dim t = Task.Factory.StartNew(Function() GenerateResult()) + + + + The class also provides constructors that initialize the task but that do not + schedule it for execution. For performance reasons, the StartNew method should be the + preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation + and scheduling must be separated, the constructors may be used, and the task's + Start + method may then be used to schedule the task for execution at a later time. + + + All members of , except for + Dispose, are thread-safe + and may be used from multiple threads concurrently. + + + + + + Represents an asynchronous operation. + + + + instances may be created in a variety of ways. The most common approach is by + using the Task type's property to retrieve a instance that can be used to create tasks for several + purposes. For example, to create a that runs an action, the factory's StartNew + method may be used: + + // C# + var t = Task.Factory.StartNew(() => DoAction()); + + ' Visual Basic + Dim t = Task.Factory.StartNew(Function() DoAction()) + + + + The class also provides constructors that initialize the Task but that do not + schedule it for execution. For performance reasons, TaskFactory's StartNew method should be the + preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation + and scheduling must be separated, the constructors may be used, and the task's + method may then be used to schedule the task for execution at a later time. + + + All members of , except for , are thread-safe + and may be used from multiple threads concurrently. + + + For operations that return values, the class + should be used. + + + For developers implementing custom debuggers, several internal and private members of Task may be + useful (these may change from release to release). The Int32 m_taskId field serves as the backing + store for the property, however accessing this field directly from a debugger may be + more efficient than accessing the same value through the property's getter method (the + s_taskIdCounter Int32 counter is used to retrieve the next available ID for a Task). Similarly, the + Int32 m_stateFlags field stores information about the current lifecycle stage of the Task, + information also accessible through the property. The m_action System.Object + field stores a reference to the Task's delegate, and the m_stateObject System.Object field stores the + async state passed to the Task by the developer. Finally, for debuggers that parse stack frames, the + InternalWait method serves a potential marker for when a Task is entering a wait operation. + + + + + + A type initializer that runs with the appropriate permissions. + + + + + Initializes a new with the specified action. + + The delegate that represents the code to execute in the Task. + The argument is null. + + + + Initializes a new with the specified action and CancellationToken. + + The delegate that represents the code to execute in the Task. + The CancellationToken + that will be assigned to the new Task. + The argument is null. + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action and creation options. + + The delegate that represents the code to execute in the task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action and creation options. + + The delegate that represents the code to execute in the task. + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action and state. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + + The argument is null. + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + The that will be assigned to the new task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action, state, snd options. + + The delegate that represents the code to execute in the task. + An object representing data to be used by the action. + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the Task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + An internal constructor used by the factory methods on task and its descendent(s). + This variant does not capture the ExecutionContext; it is up to the caller to do that. + + An action to execute. + Optional state to pass to the action. + Parent of Task. + A CancellationToken for the task. + A task scheduler under which the task will run. + Options to control its execution. + Internal options to control its execution + + + + Common logic used by the following internal ctors: + Task() + Task(object action, object state, Task parent, TaskCreationOptions options, TaskScheduler taskScheduler) + + ASSUMES THAT m_creatingTask IS ALREADY SET. + + + Action for task to execute. + Object to which to pass to action (may be null) + Task scheduler on which to run thread (only used by continuation tasks). + A CancellationToken for the Task. + Options to customize behavior of Task. + Internal options to customize behavior of Task. + + + + Checks if we registered a CT callback during construction, and deregisters it. + This should be called when we know the registration isn't useful anymore. Specifically from Finish() if the task has completed + successfully or with an exception. + + + + + Captures the ExecutionContext so long as flow isn't suppressed. + + A stack crawl mark pointing to the frame of the caller. + + + + Internal function that will be called by a new child task to add itself to + the children list of the parent (this). + + Since a child task can only be created from the thread executing the action delegate + of this task, reentrancy is neither required nor supported. This should not be called from + anywhere other than the task construction/initialization codepaths. + + + + + Starts the , scheduling it for execution to the current TaskScheduler. + + + A task may only be started and run only once. Any attempts to schedule a task a second time + will result in an exception. + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Starts the , scheduling it for execution to the specified TaskScheduler. + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + The TaskScheduler with which to associate + and execute this task. + + + The argument is null. + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Runs the synchronously on the current TaskScheduler. + + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + Tasks executed with will be associated with the current TaskScheduler. + + + If the target scheduler does not support running this Task on the current thread, the Task will + be scheduled for execution on the scheduler, and the current thread will block until the + Task has completed execution. + + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + + + + Runs the synchronously on the scheduler provided. + + + + A task may only be started and run only once. Any attempts to schedule a task a second time will + result in an exception. + + + If the target scheduler does not support running this Task on the current thread, the Task will + be scheduled for execution on the scheduler, and the current thread will block until the + Task has completed execution. + + + + The is not in a valid state to be started. It may have already been started, + executed, or canceled, or it may have been created in a manner that doesn't support direct + scheduling. + + + The instance has been disposed. + + The parameter + is null. + The scheduler on which to attempt to run this task inline. + + + + Throws an exception if the task has been disposed, and hence can no longer be accessed. + + The task has been disposed. + + + + Sets the internal completion event. + + + + + Disposes the , releasing all of its unmanaged resources. + + + Unlike most of the members of , this method is not thread-safe. + Also, may only be called on a that is in one of + the final states: RanToCompletion, + Faulted, or + Canceled. + + + The exception that is thrown if the is not in + one of the final states: RanToCompletion, + Faulted, or + Canceled. + + + + + Disposes the , releasing all of its unmanaged resources. + + + A Boolean value that indicates whether this method is being called due to a call to . + + + Unlike most of the members of , this method is not thread-safe. + + + + + Schedules the task for execution. + + If true, TASK_STATE_STARTED bit is turned on in + an atomic fashion, making sure that TASK_STATE_CANCELED does not get set + underneath us. If false, TASK_STATE_STARTED bit is OR-ed right in. This + allows us to streamline things a bit for StartNew(), where competing cancellations + are not a problem. + + + + Adds an exception to the list of exceptions this task has thrown. + + An object representing either an Exception or a collection of Exceptions. + + + + Returns a list of exceptions by aggregating the holder's contents. Or null if + no exceptions have been thrown. + + Whether to include a TCE if cancelled. + An aggregate exception, or null if no exceptions have been caught. + + + + Throws an aggregate exception if the task contains exceptions. + + + + + Checks whether this is an attached task, and whether we are being called by the parent task. + And sets the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag based on that. + + This is meant to be used internally when throwing an exception, and when WaitAll is gathering + exceptions for tasks it waited on. If this flag gets set, the implicit wait on children + will skip exceptions to prevent duplication. + + This should only be called when this task has completed with an exception + + + + + + Signals completion of this particular task. + + The bUserDelegateExecuted parameter indicates whether this Finish() call comes following the + full execution of the user delegate. + + If bUserDelegateExecuted is false, it mean user delegate wasn't invoked at all (either due to + a cancellation request, or because this task is a promise style Task). In this case, the steps + involving child tasks (i.e. WaitForChildren) will be skipped. + + + + + + FinishStageTwo is to be executed as soon as we known there are no more children to complete. + It can happen i) either on the thread that originally executed this task (if no children were spawned, or they all completed by the time this task's delegate quit) + ii) or on the thread that executed the last child. + + + + + Final stage of the task completion code path. Notifies the parent (if any) that another of its childre are done, and runs continuations. + This function is only separated out from FinishStageTwo because these two operations are also needed to be called from CancellationCleanupLogic() + + + + + This is called by children of this task when they are completed. + + + + + This is to be called just before the task does its final state transition. + It traverses the list of exceptional children, and appends their aggregate exceptions into this one's exception list + + + + + Special purpose Finish() entry point to be used when the task delegate throws a ThreadAbortedException + This makes a note in the state flags so that we avoid any costly synchronous operations in the finish codepath + such as inlined continuations + + + Indicates whether the ThreadAbortException was added to this task's exception holder. + This should always be true except for the case of non-root self replicating task copies. + + Whether the delegate was executed. + + + + Executes the task. This method will only be called once, and handles bookeeping associated with + self-replicating tasks, in addition to performing necessary exception marshaling. + + The task has already been disposed. + + + + IThreadPoolWorkItem override, which is the entry function for this task when the TP scheduler decides to run it. + + + + + + Outermost entry function to execute this task. Handles all aspects of executing a task on the caller thread. + Currently this is called by IThreadPoolWorkItem.ExecuteWorkItem(), and TaskManager.TryExecuteInline. + + + Performs atomic updates to prevent double execution. Should only be set to true + in codepaths servicing user provided TaskSchedulers. The ConcRT or ThreadPool schedulers don't need this. + + + + The actual code which invokes the body of the task. This can be overriden in derived types. + + + + + Alternate InnerInvoke prototype to be called from ExecuteSelfReplicating() so that + the Parallel Debugger can discover the actual task being invoked. + Details: Here, InnerInvoke is actually being called on the rootTask object while we are actually executing the + childTask. And the debugger needs to discover the childTask, so we pass that down as an argument. + The NoOptimization and NoInlining flags ensure that the childTask pointer is retained, and that this + function appears on the callstack. + + + + + + Performs whatever handling is necessary for an unhandled exception. Normally + this just entails adding the exception to the holder object. + + The exception that went unhandled. + + + + Waits for the to complete execution. + + + The was canceled -or- an exception was thrown during + the execution of the . + + + The has been disposed. + + + + + Waits for the to complete execution. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + true if the completed execution within the allotted time; otherwise, false. + + + The was canceled -or- an exception was thrown during the execution of the . + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + The has been disposed. + + + + + Waits for the to complete execution. + + + A to observe while waiting for the task to complete. + + + The was canceled. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + + + Waits for the to complete execution. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + true if the completed execution within the allotted time; otherwise, + false. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + + + Waits for the to complete execution. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for the task to complete. + + + true if the completed execution within the allotted time; otherwise, false. + + + The was canceled -or- an exception was thrown during the execution of the . + + + The + has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + The core wait function, which is only accesible internally. It's meant to be used in places in TPL code where + the current context is known or cached. + + + + + Cancels the . + + Indiactes whether we should only cancel non-invoked tasks. + For the default scheduler this option will only be serviced through TryDequeue. + For custom schedulers we also attempt an atomic state transition. + true if the task was successfully canceled; otherwise, false. + The + has been disposed. + + + + Sets the task's cancellation acknowledged flag. + + + + + Runs all of the continuations, as appropriate. + + + + + Helper function to determine whether the current task is in the state desired by the + continuation kind under evaluation. Three possibilities exist: the task failed with + an unhandled exception (OnFailed), the task was canceled before running (OnAborted), + or the task completed successfully (OnCompletedSuccessfully). Note that the last + one includes completing due to cancellation. + + The continuation options under evaluation. + True if the continuation should be run given the task's current state. + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + The that will be assigned to the new continuation task. + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Converts TaskContinuationOptions to TaskCreationOptions, and also does + some validity checking along the way. + + Incoming TaskContinuationOptions + Outgoing TaskCreationOptions + Outgoing InternalTaskOptions + + + + Registers the continuation and possibly runs it (if the task is already finished). + + The continuation task itself. + TaskScheduler with which to associate continuation task. + Restrictions on when the continuation becomes active. + + + + Waits for all of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + An array of instances on which to wait. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + A to observe while waiting for the tasks to complete. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The was canceled. + + + The has been disposed. + + + + + Waits for all of the provided objects to complete execution. + + + true if all of the instances completed execution within the allotted time; + otherwise, false. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for the tasks to complete. + + + The argument is null. + + + The argument contains a null element. + + + At least one of the instances was canceled -or- an exception was thrown during + the execution of at least one of the instances. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + Waits for a set of handles in a STA-aware way. In other words, it will wait for each + of the events individually if we're on a STA thread, because MsgWaitForMultipleObjectsEx + can't do a true wait-all due to its hidden message queue event. This is not atomic, + of course, but we only wait on one-way (MRE) events anyway so this is OK. + + An array of wait handles to wait on. + The timeout to use during waits. + The cancellationToken that enables a wait to be canceled. + True if all waits succeeded, false if a timeout occurred. + + + + Internal WaitAll implementation which is meant to be used with small number of tasks, + optimized for Parallel.Invoke and other structured primitives. + + + + + This internal function is only meant to be called by WaitAll() + If the completed task is canceled or it has other exceptions, here we will add those + into the passed in exception list (which will be lazily initialized here). + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + The index of the completed task in the array argument. + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1 milliseconds, which represents an + infinite time-out -or- timeout is greater than + . + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + A to observe while waiting for a task to complete. + + + The index of the completed task in the array argument. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + The was canceled. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + + + Waits for any of the provided objects to complete execution. + + + An array of instances on which to wait. + + + The number of milliseconds to wait, or (-1) to + wait indefinitely. + + + A to observe while waiting for a task to complete. + + + The index of the completed task in the array argument, or -1 if the + timeout occurred. + + + The argument is null. + + + The argument contains a null element. + + + The has been disposed. + + + is a negative number other than -1, which represents an + infinite time-out. + + + The was canceled. + + + + + Gets a unique ID for this Task instance. + + + Task IDs are assigned on-demand and do not necessarily represent the order in the which Task + instances were created. + + + + + Returns the unique ID of the currently executing Task. + + + + + Gets the Task instance currently executing, or + null if none exists. + + + + + Gets the Exception that caused the Task to end prematurely. If the Task completed successfully or has not yet thrown any + exceptions, this will return null. + + + Tasks that throw unhandled exceptions store the resulting exception and propagate it wrapped in a + in calls to Wait + or in accesses to the property. Any exceptions not observed by the time + the Task instance is garbage collected will be propagated on the finalizer thread. + + + The Task + has been disposed. + + + + + Gets the TaskStatus of this Task. + + + + + Gets whether this Task instance has completed + execution due to being canceled. + + + A Task will complete in Canceled state either if its CancellationToken + was marked for cancellation before the task started executing, or if the task acknowledged the cancellation request on + its already signaled CancellationToken by throwing an + OperationCanceledException2 that bears the same + CancellationToken. + + + + + Returns true if this task has a cancellation token and it was signaled. + To be used internally in execute entry codepaths. + + + + + This internal property provides access to the CancellationToken that was set on the task + when it was constructed. + + + + + Gets whether this threw an OperationCanceledException2 while its CancellationToken was signaled. + + + + + Gets whether this Task has completed. + + + will return true when the Task is in one of the three + final states: RanToCompletion, + Faulted, or + Canceled. + + + + + Checks whether this task has been disposed. + + + + + Gets the TaskCreationOptions used + to create this task. + + + + + Gets a that can be used to wait for the task to + complete. + + + Using the wait functionality provided by + should be preferred over using for similar + functionality. + + + The has been disposed. + + + + + Gets the state object supplied when the Task was created, + or null if none was supplied. + + + + + Gets an indication of whether the asynchronous operation completed synchronously. + + true if the asynchronous operation completed synchronously; otherwise, false. + + + + Provides access to the TaskScheduler responsible for executing this Task. + + + + + Provides access to factory methods for creating and instances. + + + The factory returned from is a default instance + of , as would result from using + the default constructor on TaskFactory. + + + + + Provides an event that can be used to wait for completion. + Only called by Wait*(), which means that we really do need to instantiate a completion event. + + + + + Determines whether this is the root task of a self replicating group. + + + + + Determines whether the task is a replica itself. + + + + + The property formerly known as IsFaulted. + + + + + Gets whether the completed due to an unhandled exception. + + + If is true, the Task's will be equal to + TaskStatus.Faulted, and its + property will be non-null. + + + + + Checks whether the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag is set, + This will only be used by the implicit wait to prevent double throws + + + + + + Checks whether the body was ever invoked. Used by task scheduler code to verify custom schedulers actually ran the task. + + + + + A structure to hold continuation information. + + + + + Constructs a new continuation structure. + + The task to be activated. + The continuation options. + The scheduler to use for the continuation. + + + + Invokes the continuation for the target completion task. + + The completed task. + Whether the continuation can be inlined. + + + + Initializes a new with the specified function. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + + The argument is null. + + + + + Initializes a new with the specified function. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + The to be assigned to this task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified function and creation options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified function and creation options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + The that will be assigned to the new task. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified function and state. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the action. + + The argument is null. + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + The to be assigned to the new task. + + The argument is null. + + The provided CancellationToken + has already been disposed. + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + + + + Initializes a new with the specified action, state, and options. + + + The delegate that represents the code to execute in the task. When the function has completed, + the task's property will be set to return the result value of the function. + + An object representing data to be used by the function. + The to be assigned to the new task. + + The TaskCreationOptions used to + customize the task's behavior. + + + The argument is null. + + + The argument specifies an invalid value for . + + The provided CancellationToken + has already been disposed. + + + + + Creates a new future object. + + The parent task for this future. + A function that yields the future value. + The task scheduler which will be used to execute the future. + The CancellationToken for the task. + Options to control the future's behavior. + Internal options to control the future's behavior. + The argument specifies + a SelfReplicating , which is illegal."/>. + + + + Creates a new future object. + + The parent task for this future. + An object containing data to be used by the action; may be null. + A function that yields the future value. + The CancellationToken for the task. + The task scheduler which will be used to execute the future. + Options to control the future's behavior. + Internal options to control the future's behavior. + The argument specifies + a SelfReplicating , which is illegal."/>. + + + + Evaluates the value selector of the Task which is passed in as an object and stores the result. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the continuation criteria specified through the parameter are not met, the continuation task will be canceled + instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + An action to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new continuation task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed. If the criteria specified through the parameter + are not met, the continuation task will be canceled instead of scheduled. + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + A new continuation . + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + The that will be assigned to the new task. + A new continuation . + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + The to associate with the continuation task and to use for its execution. + + A new continuation . + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The argument is null. + + + The argument is null. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be + passed the completed task as an argument. + + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + A new continuation . + + + The returned will not be scheduled for execution until the current + task has completed, whether it completes due to running to completion successfully, faulting due + to an unhandled exception, or exiting out early due to being canceled. + + + The , when executed, should return a . This task's completion state will be transferred to the task returned + from the ContinueWith call. + + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The has been disposed. + + + + + Creates a continuation that executes when the target completes. + + + The type of the result produced by the continuation. + + + A function to run when the completes. When run, the delegate will be passed as + an argument this completed task. + + The that will be assigned to the new task. + + Options for when the continuation is scheduled and how it behaves. This includes criteria, such + as OnlyOnCanceled, as + well as execution options, such as ExecuteSynchronously. + + + The to associate with the continuation task and to use for its + execution. + + A new continuation . + + + The returned will not be scheduled for execution until the current task has + completed, whether it completes due to running to completion successfully, faulting due to an + unhandled exception, or exiting out early due to being canceled. + + + The , when executed, should return a . + This task's completion state will be transferred to the task returned from the + ContinueWith call. + + + + The argument is null. + + + The argument specifies an invalid value for TaskContinuationOptions. + + + The argument is null. + + + The has been disposed. + + The provided CancellationToken + has already been disposed. + + + + + Gets the result value of this . + + + The get accessor for this property ensures that the asynchronous operation is complete before + returning. Once the result of the computation is available, it is stored and will be returned + immediately on later calls to . + + + + + Provides access to factory methods for creating instances. + + + The factory returned from is a default instance + of , as would result from using + the default constructor on the factory type. + + + + + Provides support for creating and scheduling + Task{TResult} objects. + + The type of the results that are available though + the Task{TResult} objects that are associated with + the methods in this class. + + + There are many common patterns for which tasks are relevant. The + class encodes some of these patterns into methods that pick up default settings, which are + configurable through its constructors. + + + A default instance of is available through the + Task{TResult}.Factory property. + + + + + + Initializes a instance with the default configuration. + + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the default configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The + TaskScheduler to use to schedule any tasks created with this TaskFactory{TResult}. A null value + indicates that the current TaskScheduler should be used. + + + With this constructor, the + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to , unless it's null, in which case the property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory{TResult}. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory{TResult}. + + + The exception that is thrown when the + argument or the + argument specifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory{TResult}. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory{TResult}. + + + The default + TaskScheduler to use to schedule any Tasks created with this TaskFactory{TResult}. A null value + indicates that TaskScheduler.Current should be used. + + + The exception that is thrown when the + argument or the + argumentspecifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to + , unless it's null, in which case the property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new task. + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The that will be assigned to the new task. + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The function delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Gets the default CancellationToken of this + TaskFactory. + + + This property returns the default that will be assigned to all + tasks created by this factory unless another CancellationToken value is explicitly specified + during the call to the factory methods. + + + + + Gets the TaskScheduler of this + TaskFactory{TResult}. + + + This property returns the default scheduler for this factory. It will be used to schedule all + tasks unless another scheduler is explicitly specified during calls to this factory's methods. + If null, TaskScheduler.Current + will be used. + + + + + Gets the TaskCreationOptions + value of this TaskFactory{TResult}. + + + This property returns the default creation options for this factory. They will be used to create all + tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Gets the TaskContinuationOptions + value of this TaskFactory{TResult}. + + + This property returns the default continuation options for this factory. They will be used to create + all continuation tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Represents the current stage in the lifecycle of a . + + + + + The task has been initialized but has not yet been scheduled. + + + + + The task is waiting to be activated and scheduled internally by the .NET Framework infrastructure. + + + + + The task has been scheduled for execution but has not yet begun executing. + + + + + The task is running but has not yet completed. + + + + + The task has finished executing and is implicitly waiting for + attached child tasks to complete. + + + + + The task completed execution successfully. + + + + + The task acknowledged cancellation by throwing an OperationCanceledException2 with its own CancellationToken + while the token was in signaled state, or the task's CancellationToken was already signaled before the + task started executing. + + + + + The task completed due to an unhandled exception. + + + + + Specifies flags that control optional behavior for the creation and execution of tasks. + + + + + Specifies that the default behavior should be used. + + + + + A hint to a TaskScheduler to schedule a + task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to + be run sooner, and tasks scheduled later will be more likely to be run later. + + + + + Specifies that a task will be a long-running, course-grained operation. It provides a hint to the + TaskScheduler that oversubscription may be + warranted. + + + + + Specifies that a task is attached to a parent in the task hierarchy. + + + + + Task creation flags which are only used internally. + + + + Specifies "No internal task options" + + + Used to filter out internal vs. public task creation options. + + + Specifies that the task will be queued by the runtime before handing it over to the user. + This flag will be used to skip the cancellationtoken registration step, which is only meant for unstarted tasks. + + + + Specifies flags that control optional behavior for the creation and execution of continuation tasks. + + + + + Default = "Continue on any, no task options, run asynchronously" + Specifies that the default behavior should be used. Continuations, by default, will + be scheduled when the antecedent task completes, regardless of the task's final TaskStatus. + + + + + A hint to a TaskScheduler to schedule a + task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to + be run sooner, and tasks scheduled later will be more likely to be run later. + + + + + Specifies that a task will be a long-running, course-grained operation. It provides + a hint to the TaskScheduler that + oversubscription may be warranted. + + + + + Specifies that a task is attached to a parent in the task hierarchy. + + + + + Specifies that the continuation task should not be scheduled if its antecedent ran to completion. + This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled + exception. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should not be scheduled if its antecedent was canceled. This + option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent ran to + completion. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent threw an + unhandled exception. This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be scheduled only if its antecedent was canceled. + This option is not valid for multi-task continuations. + + + + + Specifies that the continuation task should be executed synchronously. With this option + specified, the continuation will be run on the same thread that causes the antecedent task to + transition into its final state. If the antecedent is already complete when the continuation is + created, the continuation will run on the thread creating the continuation. Only very + short-running continuations should be executed synchronously. + + + + + Represents an exception used to communicate task cancellation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the + class with a specified error message and a reference to the inner exception that is the cause of + this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + + Initializes a new instance of the class + with a reference to the that has been canceled. + + A task that has been canceled. + + + + Gets the task associated with this exception. + + + It is permissible for no Task to be associated with a + , in which case + this property will return null. + + + + + Represents the producer side of a unbound to a + delegate, providing access to the consumer side through the property. + + + + It is often the case that a is desired to + represent another asynchronous operation. + TaskCompletionSource is provided for this purpose. It enables + the creation of a task that can be handed out to consumers, and those consumers can use the members + of the task as they would any other. However, unlike most tasks, the state of a task created by a + TaskCompletionSource is controlled explicitly by the methods on TaskCompletionSource. This enables the + completion of the external asynchronous operation to be propagated to the underlying Task. The + separation also ensures that consumers are not able to transition the state without access to the + corresponding TaskCompletionSource. + + + All members of are thread-safe + and may be used from multiple threads concurrently. + + + The type of the result value assocatied with this . + + + + Creates a . + + + + + Creates a + with the specified options. + + + The created + by this instance and accessible through its property + will be instantiated using the specified . + + The options to use when creating the underlying + . + + The represent options invalid for use + with a . + + + + + Creates a + with the specified state. + + The state to use as the underlying + 's AsyncState. + + + + Creates a with + the specified state and options. + + The options to use when creating the underlying + . + The state to use as the underlying + 's AsyncState. + + The represent options invalid for use + with a . + + + + + Attempts to transition the underlying + into the + Faulted + state. + + The exception to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The argument is null. + The was disposed. + + + + Attempts to transition the underlying + into the + Faulted + state. + + The collection of exceptions to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The argument is null. + There are one or more null elements in . + The collection is empty. + The was disposed. + + + + Transitions the underlying + into the + Faulted + state. + + The exception to bind to this . + The argument is null. + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + Faulted + state. + + The collection of exceptions to bind to this . + The argument is null. + There are one or more null elements in . + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Attempts to transition the underlying + into the + RanToCompletion + state. + + The result value to bind to this . + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + RanToCompletion + state. + + The result value to bind to this . + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Transitions the underlying + into the + Canceled + state. + + + The underlying is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Attempts to transition the underlying + into the + Canceled + state. + + True if the operation was successful; otherwise, false. + This operation will return false if the + is already in one + of the three final states: + RanToCompletion, + Faulted, or + Canceled. + + The was disposed. + + + + Gets the created + by this . + + + This property enables a consumer access to the that is controlled by this instance. + The , , + , and + methods (and their "Try" variants) on this instance all result in the relevant state + transitions on this underlying Task. + + + + + An exception holder manages a list of exceptions for one particular task. + It offers the ability to aggregate, but more importantly, also offers intrinsic + support for propagating unhandled exceptions that are never observed. It does + this by aggregating and throwing if the holder is ever GC'd without the holder's + contents ever having been requested (e.g. by a Task.Wait, Task.get_Exception, etc). + + + + + Creates a new holder; it will be registered for finalization. + + The task this holder belongs to. + + + + A finalizer that repropagates unhandled exceptions. + + + + + Add an exception to the internal list. This will ensure the holder is + in the proper state (handled/unhandled) depending on the list's contents. + + An exception object (either an Exception or an + IEnumerable{Exception}) to add to the list. + + + + A private helper method that ensures the holder is considered + unhandled, i.e. it is registered for finalization. + + + + + A private helper method that ensures the holder is considered + handled, i.e. it is not registered for finalization. + + Whether this is called from the finalizer thread. + + + + Allocates a new aggregate exception and adds the contents of the list to + it. By calling this method, the holder assumes exceptions to have been + "observed", such that the finalization check will be subsequently skipped. + + Whether this is being called from a finalizer. + An extra exception to be included (optionally). + The aggregate exception to throw. + + + + Provides a set of static (Shared in Visual Basic) methods for working with specific kinds of + instances. + + + + + Creates a proxy Task that represents the + asynchronous operation of a Task{Task}. + + + It is often useful to be able to return a Task from a + Task{TResult}, where the inner Task represents work done as part of the outer Task{TResult}. However, + doing so results in a Task{Task}, which, if not dealt with carefully, could produce unexpected behavior. Unwrap + solves this problem by creating a proxy Task that represents the entire asynchronous operation of such a Task{Task}. + + The Task{Task} to unwrap. + The exception that is thrown if the + argument is null. + A Task that represents the asynchronous operation of the provided Task{Task}. + + + + Creates a proxy Task{TResult} that represents the + asynchronous operation of a Task{Task{TResult}}. + + + It is often useful to be able to return a Task{TResult} from a Task{TResult}, where the inner Task{TResult} + represents work done as part of the outer Task{TResult}. However, doing so results in a Task{Task{TResult}}, + which, if not dealt with carefully, could produce unexpected behavior. Unwrap solves this problem by + creating a proxy Task{TResult} that represents the entire asynchronous operation of such a Task{Task{TResult}}. + + The Task{Task{TResult}} to unwrap. + The exception that is thrown if the + argument is null. + A Task{TResult} that represents the asynchronous operation of the provided Task{Task{TResult}}. /// Unwraps a Task that returns another Task. + + + + Provides support for creating and scheduling + Tasks. + + + + There are many common patterns for which tasks are relevant. The + class encodes some of these patterns into methods that pick up default settings, which are + configurable through its constructors. + + + A default instance of is available through the + Task.Factory property. + + + + + + Initializes a instance with the default configuration. + + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + This constructor creates a instance with a default configuration. The + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The + TaskScheduler to use to schedule any tasks created with this TaskFactory. A null value + indicates that the current TaskScheduler should be used. + + + With this constructor, the + property is initialized to + TaskCreationOptions.None, the + property is initialized to TaskContinuationOptions.None, + and the TaskScheduler property is + initialized to , unless it's null, in which case the property is + initialized to the current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory. + + + The exception that is thrown when the + argument or the + argument specifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Initializes a instance with the specified configuration. + + The default that will be assigned + to tasks created by this unless another CancellationToken is explicitly specified + while calling the factory methods. + + The default + TaskCreationOptions to use when creating tasks with this TaskFactory. + + + The default + TaskContinuationOptions to use when creating continuation tasks with this TaskFactory. + + + The default + TaskScheduler to use to schedule any Tasks created with this TaskFactory. A null value + indicates that TaskScheduler.Current should be used. + + + The exception that is thrown when the + argument or the + argumentspecifies an invalid value. + + + With this constructor, the + property is initialized to , + the + property is initialized to , and the TaskScheduler property is initialized to + , unless it's null, in which case the property is initialized to the + current scheduler (see TaskScheduler.Current). + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The started Task. + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors + and then calling + Start to schedule it for execution. However, + unless creation and scheduling must be separated, StartNew is the recommended + approach for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The that will be assigned to the new task. + The started Task. + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors + and then calling + Start to schedule it for execution. However, + unless creation and scheduling must be separated, StartNew is the recommended + approach for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + The that will be assigned to the new + A TaskCreationOptions value that controls the behavior of the + created + Task. + The TaskScheduler + that is used to schedule the created Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The started Task. + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The that will be assigned to the new + The started Task. + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a Task. + + The action delegate to execute asynchronously. + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + Task. + The TaskScheduler + that is used to schedule the created Task. + The started Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a Task using one of its constructors and + then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The started . + The exception that is thrown when the + argument is null. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new + The started . + The exception that is thrown when the + argument is null. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + A TaskCreationOptions value that controls the behavior of the + created + . + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates and starts a . + + The type of the result available through the + Task. + + A function delegate that returns the future result to be available through + the . + An object containing data to be used by the + delegate. + The that will be assigned to the new task. + A TaskCreationOptions value that controls the behavior of the + created + . + The TaskScheduler + that is used to schedule the created + Task{TResult}. + The started . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The provided CancellationToken + has already been disposed. + + + Calling StartNew is functionally equivalent to creating a using one + of its constructors and then calling + Start to schedule it for execution. + However, unless creation and scheduling must be separated, StartNew is the recommended approach + for both simplicity and performance. + + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the asynchronous + operation. + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the asynchronous + operation. + + + + Creates a Task that executes an end method action + when a specified IAsyncResult completes. + + The IAsyncResult whose completion should trigger the processing of the + . + The action delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the asynchronous + operation. + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of begin + and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the + delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that represents the + asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that executes an end + method function when a specified IAsyncResult completes. + + The type of the result available through the + Task. + + The IAsyncResult whose completion should trigger the processing of the + . + The function delegate that processes the completed . + The TaskScheduler + that is used to schedule the task that executes the end method. + The TaskCreationOptions value that controls the behavior of the + created Task. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + A Task that represents the + asynchronous operation. + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Creates a Task that represents a pair of + begin and end methods that conform to the Asynchronous Programming Model pattern. + + The type of the first argument passed to the delegate. + The type of the second argument passed to + delegate. + The type of the third argument passed to + delegate. + The type of the result available through the + Task. + + The delegate that begins the asynchronous operation. + The delegate that ends the asynchronous operation. + The first argument passed to the + delegate. + The second argument passed to the + delegate. + The third argument passed to the + delegate. + The TaskCreationOptions value that controls the behavior of the + created Task. + An object containing data to be used by the + delegate. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument specifies an invalid TaskCreationOptions + value. + The created Task that + represents the asynchronous operation. + + This method throws any exceptions thrown by the . + + + + + Check validity of options passed to FromAsync method + + The options to be validated. + determines type of FromAsync method that called this method + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in + the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result of the antecedent . + The array of tasks from which to continue. + The action delegate to execute when all tasks in the array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of a set of provided Tasks. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue. + The function delegate to execute when all tasks in the + array have completed. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAll. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation Task. + The new continuation Task. + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result that is returned by the + delegate and associated with the created . + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The function delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Creates a continuation Task + that will be started upon the completion of any Task in the provided set. + + The type of the result of the antecedent . + The array of tasks from which to continue when one task completes. + The action delegate to execute when one task in the + array completes. + The CancellationToken + that will be assigned to the new continuation task. + The + TaskContinuationOptions value that controls the behavior of + the created continuation Task. + The TaskScheduler + that is used to schedule the created continuation . + The new continuation . + The exception that is thrown when the + array is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + argument is null. + The exception that is thrown when the + array contains a null value. + The exception that is thrown when the + array is empty. + The exception that is thrown when the + argument specifies an invalid TaskContinuationOptions + value. + The exception that is thrown when one + of the elements in the array has been disposed. + The provided CancellationToken + has already been disposed. + + + The NotOn* and OnlyOn* TaskContinuationOptions, + which constrain for which TaskStatus states a continuation + will be executed, are illegal with ContinueWhenAny. + + + + + Gets the default CancellationToken of this + TaskFactory. + + + This property returns the default that will be assigned to all + tasks created by this factory unless another CancellationToken value is explicitly specified + during the call to the factory methods. + + + + + Gets the TaskScheduler of this + TaskFactory. + + + This property returns the default scheduler for this factory. It will be used to schedule all + tasks unless another scheduler is explicitly specified during calls to this factory's methods. + If null, TaskScheduler.Current + will be used. + + + + + Gets the TaskCreationOptions + value of this TaskFactory. + + + This property returns the default creation options for this factory. They will be used to create all + tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Gets the TaskContinuationOptions + value of this TaskFactory. + + + This property returns the default continuation options for this factory. They will be used to create + all continuation tasks unless other options are explicitly specified during calls to this factory's methods. + + + + + Represents an abstract scheduler for tasks. + + + + TaskScheduler acts as the extension point for all + pluggable scheduling logic. This includes mechanisms such as how to schedule a task for execution, and + how scheduled tasks should be exposed to debuggers. + + + All members of the abstract type are thread-safe + and may be used from multiple threads concurrently. + + + + + + Queues a Task to the scheduler. + + + + A class derived from TaskScheduler + implements this method to accept tasks being scheduled on the scheduler. + A typical implementation would store the task in an internal data structure, which would + be serviced by threads that would execute those tasks at some time in the future. + + + This method is only meant to be called by the .NET Framework and + should not be called directly by the derived class. This is necessary + for maintaining the consistency of the system. + + + The Task to be queued. + The argument is null. + + + + Determines whether the provided Task + can be executed synchronously in this call, and if it can, executes it. + + + + A class derived from TaskScheduler implements this function to + support inline execution of a task on a thread that initiates a wait on that task object. Inline + execution is optional, and the request may be rejected by returning false. However, better + scalability typically results the more tasks that can be inlined, and in fact a scheduler that + inlines too little may be prone to deadlocks. A proper implementation should ensure that a + request executing under the policies guaranteed by the scheduler can successfully inline. For + example, if a scheduler uses a dedicated thread to execute tasks, any inlining requests from that + thread should succeed. + + + If a scheduler decides to perform the inline execution, it should do so by calling to the base + TaskScheduler's + TryExecuteTask method with the provided task object, propagating + the return value. It may also be appropriate for the scheduler to remove an inlined task from its + internal data structures if it decides to honor the inlining request. Note, however, that under + some circumstances a scheduler may be asked to inline a task that was not previously provided to + it with the method. + + + The derived scheduler is responsible for making sure that the calling thread is suitable for + executing the given task as far as its own scheduling and execution policies are concerned. + + + The Task to be + executed. + A Boolean denoting whether or not task has previously been + queued. If this parameter is True, then the task may have been previously queued (scheduled); if + False, then the task is known not to have been queued, and this call is being made in order to + execute the task inline without queueing it. + A Boolean value indicating whether the task was executed inline. + The argument is + null. + The was already + executed. + + + + Generates an enumerable of Task instances + currently queued to the scheduler waiting to be executed. + + + + A class derived from implements this method in order to support + integration with debuggers. This method will only be invoked by the .NET Framework when the + debugger requests access to the data. The enumerable returned will be traversed by debugging + utilities to access the tasks currently queued to this scheduler, enabling the debugger to + provide a representation of this information in the user interface. + + + It is important to note that, when this method is called, all other threads in the process will + be frozen. Therefore, it's important to avoid synchronization with other threads that may lead to + blocking. If synchronization is necessary, the method should prefer to throw a + than to block, which could cause a debugger to experience delays. Additionally, this method and + the enumerable returned must not modify any globally visible state. + + + The returned enumerable should never be null. If there are currently no queued tasks, an empty + enumerable should be returned instead. + + + For developers implementing a custom debugger, this method shouldn't be called directly, but + rather this functionality should be accessed through the internal wrapper method + GetScheduledTasksForDebugger: + internal Task[] GetScheduledTasksForDebugger(). This method returns an array of tasks, + rather than an enumerable. In order to retrieve a list of active schedulers, a debugger may use + another internal method: internal static TaskScheduler[] GetTaskSchedulersForDebugger(). + This static method returns an array of all active TaskScheduler instances. + GetScheduledTasksForDebugger then may be used on each of these scheduler instances to retrieve + the list of scheduled tasks for each. + + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + This scheduler is unable to generate a list of queued tasks at this time. + + + + + Retrieves some thread static state that can be cached and passed to multiple + TryRunInline calls, avoiding superflous TLS fetches. + + A bag of TLS state (or null if none exists). + + + + Attempts to execute the target task synchronously. + + The task to run. + True if the task may have been previously queued, + false if the task was absolutely not previously queued. + The state retrieved from GetThreadStatics + True if it ran, false otherwise. + + + + Attempts to dequeue a Task that was previously queued to + this scheduler. + + The Task to be dequeued. + A Boolean denoting whether the argument was successfully dequeued. + The argument is null. + + + + Notifies the scheduler that a work item has made progress. + + + + + Initializes the . + + + + + Frees all resources associated with this scheduler. + + + + + Creates a + associated with the current . + + + All Task instances queued to + the returned scheduler will be executed through a call to the + Post method + on that context. + + + A associated with + the current SynchronizationContext, as + determined by SynchronizationContext.Current. + + + The current SynchronizationContext may not be used as a TaskScheduler. + + + + + Attempts to execute the provided Task + on this scheduler. + + + + Scheduler implementations are provided with Task + instances to be executed through either the method or the + method. When the scheduler deems it appropriate to run the + provided task, should be used to do so. TryExecuteTask handles all + aspects of executing a task, including action invocation, exception handling, state management, + and lifecycle control. + + + must only be used for tasks provided to this scheduler by the .NET + Framework infrastructure. It should not be used to execute arbitrary tasks obtained through + custom mechanisms. + + + + A Task object to be executed. + + The is not associated with this scheduler. + + A Boolean that is true if was successfully executed, false if it + was not. A common reason for execution failure is that the task had previously been executed or + is in the process of being executed by another thread. + + + + Provides an array of all queued Task instances + for the debugger. + + + The returned array is populated through a call to . + Note that this function is only meant to be invoked by a debugger remotely. + It should not be called by any other codepaths. + + An array of Task instances. + + This scheduler is unable to generate a list of queued tasks at this time. + + + + + Provides an array of all active TaskScheduler + instances for the debugger. + + + This function is only meant to be invoked by a debugger remotely. + It should not be called by any other codepaths. + + An array of TaskScheduler instances. + + + + Registers a new TaskScheduler instance in the global collection of schedulers. + + + + + Removes a TaskScheduler instance from the global collection of schedulers. + + + + + Indicates the maximum concurrency level this + is able to support. + + + + + Indicates whether this is a custom scheduler, in which case the safe code paths will be taken upon task entry + using a CAS to transition from queued state to executing. + + + + + Gets the default TaskScheduler instance. + + + + + Gets the TaskScheduler + associated with the currently executing task. + + + When not called from within a task, will return the scheduler. + + + + + Gets the unique ID for this . + + + + + Occurs when a faulted 's unobserved exception is about to trigger exception escalation + policy, which, by default, would terminate the process. + + + This AppDomain-wide event provides a mechanism to prevent exception + escalation policy (which, by default, terminates the process) from triggering. + Each handler is passed a + instance, which may be used to examine the exception and to mark it as observed. + + + + + Nested class that provides debugger view for TaskScheduler + + + + Default thread pool scheduler. + + + + A TaskScheduler implementation that executes all tasks queued to it through a call to + on the + that its associated with. The default constructor for this class binds to the current + + + + + Constructs a SynchronizationContextTaskScheduler associated with + + This constructor expects to be set. + + + + Implemetation of for this scheduler class. + + Simply posts the tasks to be executed on the associated . + + + + + + Implementation of for this scheduler class. + + The task will be executed inline only if the call happens within + the associated . + + + + + + + Implementes the property for + this scheduler class. + + By default it returns 1, because a based + scheduler only supports execution on a single thread. + + + + + Provides data for the event that is raised when a faulted 's + exception goes unobserved. + + + The Exception property is used to examine the exception without marking it + as observed, whereas the method is used to mark the exception + as observed. Marking the exception as observed prevents it from triggering exception escalation policy + which, by default, terminates the process. + + + + + Initializes a new instance of the class + with the unobserved exception. + + The Exception that has gone unobserved. + + + + Marks the as "observed," thus preventing it + from triggering exception escalation policy which, by default, terminates the process. + + + + + Gets whether this exception has been marked as "observed." + + + + + The Exception that went unobserved. + + + + + Represents an exception used to communicate an invalid operation by a + . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the + class using the default error message and a reference to the inner exception that is the cause of + this exception. + + The exception that is the cause of the current exception. + + + + Initializes a new instance of the + class with a specified error message and a reference to the inner exception that is the cause of + this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.IO.dll b/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.IO.dll new file mode 100644 index 0000000000000000000000000000000000000000..32dd41b780e3abf07d8bcbf35ba532ffc8d4618c GIT binary patch literal 22672 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.IO.xml b/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.IO.xml new file mode 100644 index 000000000..e83273427 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.IO.xml @@ -0,0 +1,51 @@ + + + + System.IO + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Found invalid data while decoding.. + + + + + The exception that is thrown when a data stream is in an invalid format. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Runtime.dll b/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..118fcce204348879c199c5ebba06751972f7f298 GIT binary patch literal 22176 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Runtime.xml b/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Runtime.xml new file mode 100644 index 000000000..93cb00d74 --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Runtime.xml @@ -0,0 +1,56 @@ + + + + System.Runtime + + + + Defines a provider for progress updates. + The type of progress update value. + + + Reports a progress update. + The value of the updated progress. + + + Identities the async state machine type for this method. + + + Identities the state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + Gets the type that implements the state machine. + + + Initializes the attribute. + The type that implements the state machine. + + + + Allows you to obtain the method or property name of the caller to the method. + + + + + Allows you to obtain the line number in the source file at which the method is called. + + + + + Allows you to obtain the full path of the source file that contains the caller. + This is the file path at the time of compile. + + + + Identities the iterator state machine type for this method. + + + Initializes the attribute. + The type that implements the state machine. + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Threading.Tasks.dll b/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..a60ab265715dca3e129eaf80adcca908b900ddc7 GIT binary patch literal 35016 zcmeIb2V7H2(=fg{X%Kqv7(@`MCv;Slt|%Z1f(3*Cp-2fPK?M~lisgzGJ1W?F@4ffl zdvDmgV*StV3C(h!`@Y}%{GRXqegAl~XJ>YHc6N4lc6QH(8{TU?Vk3k&@cr=vq0R8b zA3u`*eNqI)n$5OqqV=jLtTwa4PFO{!XUK)QGHIGjoGnZi=j2Eg!X$}MmX{;U$Pos0 zi4tZ@QzXtB8iE!|){(&og|XP^vgd>7y4G$Z%1Vu;#t5OpU{@xCf>h2jxhxrwM7Bi8@ZcK&-$oxl zsO>D1WJ!S#%Zg>jI%v`$fPTN!L})zLD}1nQ6ylqd6)?2+i15X9ASlC^&+x6MGXnBP zbif_xxQ2FMfVh3i(4NQ9jpjsVvq?10y;ez?-VCHO|z8!cZ2U~VzAry1$Ko0^ZHapT@-`>@*97csz1SZ4* zJ1qodaIn$xz@R}?4k&OCd1C$`0|GVcP}E>hJ4Xhlm8*+zBMy!No+Fzm$iY`jfl$BRZPk;ogPPrW5_1` zo2$by;z44}g+vM+5ZKyxf~ue#jw}$%4VvTGyXuoJ7J(svy4aKyR4$;Tj*!|pLBiOX zEA$5xsY6M@xd{YpCk-BHSZQXIoe+3AQapPeZ)}E9PdwL|B50RQQ>boXqNF0I@2Ema zfulehQKvx&rgzRB)M?PE60oCAgKm|88P%XCXHDufI9I0RJImh4-VDYCtdiIXN9u<8 zv-P!E;66wP1UJ=fZ?bJ~B4R1_JbM;dgw&9lA!0*4P#fe;5E~?8@$APIf<17Ybim%h z_<3@7;8%oE1YZQ=a-dIoGz)=;K`^d5l${6AfVBvCQcv7Es6pTUgDeW`7#iRefhBNc z+v-7Vkup72T`9H=Sw=kw6P9B?h20MZ#B2;soYZ8?pi~ZXO;Eu8ZisPG2_CzJ>?UQ@ zAedMjM>W|2Ox_xkgUw?c_(=*SgS^08rw|x$uz%u#(YAtz8vi>F`o#2Ao#Eo-T-Op9 z8IR)h0~MH!!3kl=5HYDV6)5;jehADQj*5N55(2Xn>&p!0njG2(VZc{lq+>!M%o`3k z7d=ol7#&XzEeUJ{MHtP{IBD{zL71boEfhHz5y_dNx&kw(c(a+3r5f|Z{*iZGS(7LV zv7ku`JXPl?1g43QE2Y2~MvVYt{Qv@gb>zO#m;l@q#4Z9`9?>13$XK6-!D9TUfOi@O zn=wN-H95o}0tNKW%$|4Js}bI>9*akgkfIyufTZCaOP-pxE4T0IR?7Tsj1x)}v z-_oI77$+UJqaV8vOo^E=V4*yD7-of01W!rB0lwKzU|f#bsqqadkcu~#FOLAcHiBsh zs~S@sES4wlf~#W`!BcjT0NdK*@x!aAZ7XDo`3NZ7e-`$|2$l>TUG&`mh6ZMyCp8#` zpTo8TSMJaNbptl`%_*#To-NoXL&ULzN$k)F1aI#ET_>e>-Eo}|1}FqWf|)z5lblQ1w?jGkw+X9%oC=cdWdg|*usI!Cfg3e5zA`#)NIPH8AY+}#Fz)+$F$SH)SkyC(;57w z303DD2`>t{0WTQ$#hz=hIf5j!*E+a*C;*aj&g3k-w~cE&w1bC?F;c^RqMdEmOh z?449W0`R~B2OdwF0#9|7rn2y`?ck9k{s#ErSVN}}I|)!1%vs_(fC)G>fxQ~o1&j~* zG&Uf{ejtwHGxlT2#@<wbSI~Z|+Q}aR?4`$ARC_Fg~p`Zw(2;MFO*KoG$ z3lBM1D9?T(EF)G>%yxwKGXYHvZVupg0|-MXN`DA=Ar77v7};Qy3`C5QjA>I_!lhu3 zFw_70_V`;K|I!}YQG;-29C;KTL>}mpu>q{ipT>|OG+;9|m`S3^RJ+b*CXKyvZ81ce zEpYe@6BPL2@q?~`P2r}bS)j9GYt)9p7o^$VI?}LQF55#0-{j{h0P)dQ1&Pw zs#5?9hb!=b5CZjgccz`)Xg3kq8{RcQBd7&98S6sWlfu&*Rs`!Pg)Ac{O^zuJ!wBb6 zfa@NGyumSGmulUidnl|as3X7%kls2VOA1OMA0TDL&Y7z=3OldQHg4FF;MV=&ix*K~ zhrm>j0=^vhf|O)y4Lv4w(0{z|AviD;lE?Kh58#d04}x=qC#Jc_ihqF}@r7IE#lU4$cqYByxC2g^TmnTwN{?sqrvo7D@RkkNG^5pn^+F zRWnq1s8SWz-9*yUBz;a&Jpsl$k~EN{i6k9L(rF}JN75UD;{qOvRQFXMgi>H&cu1~3 z6w*l~U89cM+C|b6Bz;8ES0q)@7z#c1(s0n=p?Hk|NM~qZ`kf@bq=98Xnz$Esni#*2 zq{lTe{yxdK)xtgMM$&jKUv(ZT(883nNV8ag;{11bLC@xmz!6@kszASbXj#tyZSJ3uNhibkjiTu&G&Q-#$ILvaLBgVj;F;MNMB+Gr(|abX>IBxMHx#{&x!5$Fy;0x&%{!t)EEG(ldd z3h=6|p^%!PHjvXs767RN)D|Fw+zDg>r!p7{Cy*72Mb%Ivh19b}5&{iSLTLmVrG(On z)bmI^TVm(hXf5kFO9Oh40kUaPhOm1yrOc2gT1Tw~jclhjLVAFtCrNq^QY&1#W4MJSJ3$zq`q-1$&Cgm(e*6L>cuozJ@i=`z4r z!4hFl)!|L}TS2xi{8Zq>*ILg#Ed(W@Va7tL8T9BD10fg62IlQMCFD(sV9Zp25m2JG zR2y)97WGgFjG4O<3ZbHqCJIwR;lM=~4OT+kfr|l}Uk@dMB^|G)jDj`rT|JZzCn@I5 znfAInu(lIk9ue!jIvZ&uU35>+XF3ALIoNFVEo1r$_d7Mc{MCAR7s#>(Af^K&ea6k zk8tbWXfuJz&}(WhK#!GBErGOK;MU8K2Kx|{EmJ}|>~mn%I|;vNK5N#n0?|7qw2@tl0+FFD zuE$UYp=bh?qMK|sD+m=3s0_VftFeO7d}Wy`M~4-H^k9)ks1*8c!Rm-wFc9?U912D2 z2{Zw9;MlW5(S8C=LSs2ztWM~*vTQadfYlkbf;9-Cee9*2&H(ums0?_X1HU375F=R_ z3MSA!w3HLi3PZ7tD8tb}h7x_`3}S_&MfH@!06N)-G6L;oD9QLmpjQN%gj#dUSrJHq z9TS>_g1M7fk?0~riI!>Ev$~>tO6UVXu&p4UgWN>!ITVEkl6q6X2A8v<&{zVM5e-J6 zN+pCf7>$+^=niWF)a#DcDa)>M*RZ;yy-MgEK(Xiy1F2~9wzGPoo60g1-Z|70y;4Hf zygg9%oj|3C<{e`7Lh3k>M#U;!c|%ceM2@hOW7``ENg1Qh-YAYhSnB7j-bh9uM(Wx+`Bm<$Fyv{5MQV@vgQ7W2Gph?JuU&Bg8 z7YT&>=S-!dyG%W>EH{AoWRYWfn}!UO5bkX{vL+DI+YE$HlkiN%z0E*bN(lEh6RlQ4 zcvP~{ZY6~Kkd3sRalK+Rkbe$hq#y<&qmqLv8L81=?d4n?KjF_oZZ%NmG5|nWmIi1k z--qf~U$zk-8A>2L@my(7;ZTo-4)bw(0#XWH;8U=k+--tsT#BQx#-;iy7;^#WIsXW6 zp@RA2lk&P2E&h;aIO9?da&JV_7~c-?Ton3;(#EwgAGVTDG@+N16!)D1yVurcqq0VP ze#Kx)HlgGwDR~;W7vo7fiPXg@h2}%bMk@$r9l>lM`MuBzrL4>7oN1lu(K$kMm8AC? zrLQ1QAqMlQ5gs35vdBSZ)07W*3h9v2W+Y`KVbaE&tqCQAX`II#Sjd5-|Ad~A#EsB5 zuFK&4|1lq??p)YvfDR#LDSO?6a9~miB;7;OBP2aT(kmprL(&?OzJ|0b#bODmSV|SrbI>iE>aaGef2UfY zgX%VHD}oP&{5gnA52{DA-61Vuw}n)N@=?~Z*4WApg1U#;{;W)m6OhU@p0mS%MwMfQ zmTOpYda@2{*h2o1hBGIOP+Fl68o`_lmbzvPrxh~SOy~3?+^kTD<`BTdXby)oMRO=b zF;dOxkjLw|6)Mo2&GBcA)tnFMBuK5$G|e55F4f%1E@oYVe5jJYwMH$_J8SLWOaRVD zIn{*!5=g@++^;Yyj!?#tzNA3@97;jswccGg4NK~Da zsuN0mk{?DQ(P3oe)hGBp(AFWg7`4%MtY3oC@P3otw7kD zRv^4eRFL(c0%0FoK~}U163bR9QykG&63R*v(WWT#IL56+c-5&SD?=q&Wl~VQ_IPdz z%GTb&84PhlXI2esgZ4RuM`0&-K1h3rUCY{|eTpkaH?*%oS_7qG^chkXC8VBlO-PSa zP!Fi10(+Yr7KJt-c%g#!kn{{mYaw-pJ%|R+8BIdbd}r9VY=wLqlKzD{1I8Nl1&jll z18FDrVUpe|+H}Ex3As5%MwKkEB(6jQ3N;X`&iVi_~!`@kB@u*|UAvaqKbd zrEG1E7bk*~%gN{b#o5F;z&X#k$N9u*#_h!I#+7jUatpb`xl_3FxR1CRFwZr?UuwZV z4&JWtjPXg4gkE@Bty<`6;+dz=t#v<|GA?ks74QaQ3c& z3Q>RHIt@}Sv=veT>>N$m7VJ*!{_J_|U2McT!@0qE%3*OiTs7GFn{Z>feYgj?oFW7~ z;Pim3jBsCpO5|V+dDBX|$wD_lwx4mE)G!VqAxZJRnOhIxopS@^q^8SlfZ8{K;+sJD zETVxDpGh=8d9e3xfbcm+1N2vuvUyFQeE@+ARmyp`N!iUN5Z>K4@ci5a(t%TehBAC6 zz=d((!6>MJ=3tS64;Oi2wE>=asw$sq$Pf0C_&r)6Dc4ZK8cJA8NvDlI5k14cmeA=c zVSVM(Kv~Z~S&+sX2A5zami8oQw!ET!1&6RvCl(3cZX`_6$Qa&A&&v0~~ zjr-FTS#YpmU6t@4<+B()xvs(Wy3kP2p>dRN4CQZGp7m>ki*`@J)yB47MGV`=Uqe_UH>+2zh(>hNEPTCd%Vz z!#4r&V))Jj{37771ioRAk3@2AB)ZKtLw;}zhlahhADq+pp=Kxu3E^o4Cne3{X${{N zfU|+8E#O+h(+<9^0A~+R2f#VP6FzOjr73w?l6EL6U#^g3J4dI>B;ph}Zgh?o%QNN9 zDOp)4EF&#lk(a9^LBRth$$5$lX-=Rt2VdW*D^@8wdnj@3G$cc=Ol+q z6zS5GfV_;X6p1WQDwEVT+AS|fk&!KN4wPo+W@JfZ^(?}r{Us651Q6s%WR1CC=>o;c z>5@cIV|0L2nk5nE)R#6c3(Zlux&BmA-%{wW5;Aphg(iak0bM6Yj5H&qDLunFN+DKA z!a?GU90>}IkSa1#^KpN(Bv_RwG*FhI$Ve7v{ZfJ%Vj;RoNXk9MJPRh!MHpD4n zh1g#Kr^88kiUws$QnMt4Dnmh%EJ+%OkD_Jy9V80434qfmoC`(KF&Iq%S$?1x?1d!JF(N2(MS);X zP!lSI=ExP|oMZ_K$;(MjtSj*cQTvN=D-0#0JO5;`AUPnR-cOi%HVG*i@?5E0f)bL& zxr#h6rv$iR2M}p7P@0>M5+py_D#*r=GK~=;EP*r!#t*Cv1u1#LFoa0+a#Bz?Np6-n zSrVI}NN*&JEG;ivlA~Z$6)I;~5EU}ghUTP7l^v>AUZfbV14~uI5`t_$(6{&3Ye74B*k(B4+KUzK#(7kA4`#{f>9tU*fp5-@4X5lv#{Ry zqojGVWIU1U28GNDNlG1zr#T9dNwbwko1LJLexn$1#EHQK;Cpldv&B-W$A*gqH2nJ9(fH(~l zDU;-iWs-UxAyQd4aCK0QivpwrLvvtmi?fs*Kz+%$ODRf)Lr1d{k{GX8r?5YHMCaf5 zDd*od;y*x~q38lWx=xwV1cSXOF6o{l7pF>^l!K2!X%a;O9vnQmmD+|}ea|qOI4JN` zSQ*gMSYXy*IfMb@Z9-F^G)R(^mzD;N{thQkNRgz9!KpDVk#@0>$t1)=iIsp=z;I)U zm`6iXjMadLA}$IG{!1AcHD*f2gE-G$C}6_;et5GJq{L@7?FDGMKTP}XInpFKEORi8 zfqlJpV5#Vl6 zf9&&rHY>1v2@utWaBQ?Sr zA)=F7bqjCZG^_JuGG~uvTP!oIO~s8e=La3P-IDdAAs~ko824A|!bVnK-K+5hl(_%YzBhP{ltjO-3S{ z`Z-*;)`FwQu?h@$LlJ|?B7KO4Xs!;Y>?(<&85g9G59lvTlh@gFP=+`yM=FQtRSuCN_V;+AG$@(DfvLk*0|HCz+%g!Ib(3U? z2a=A-8_1PQA0~sMq>QW#MI!@e?n2-Q305E`k`yV!5Bz{dHbogNNpl){#RN1Eb1E}# zs4Wv~v`b1zpy8aJ5lSNKAc1`bc$t(2dGI2FLt&-P!!mOEq2L?{|75tEb?888mNM#= zI};`u$tbje4AdV5#so2Vw3PV6IsvdiB>csah)|t#l;dC&?}>2J9mP2*(2`OR90(~f z^_A-b8gOqDYW5HzBxR z9%xjNk0N2fu+xBbD=IHHS1JP)HK;dSoGDRuny4x$AKZFIGPBqzV+!o#NLJZ0$e^qO zwnTzyFsRIoTrkW`2_X!XH|E(ukDCaRq-Nlt3PMcfkh&v=aex>?LTD=?RF0zv7>01z zFG*y~j-o;4woKr_7(ifDi?;225)#OcGQ~efnvjHR@lC3h}MqrAd;V^N& zwDIc6z@1@5Q%(lh&MG9iI9$w2OK&i%x?V@*Wo0!;#q6Y*cnB#svrOQM+BQU-jL=b% zoRluINSJx`8-;(=57(bri4Y0m>XzAm#KaBZhH(@O#|4qF>qcGkBzcnV5EjM4Di#W7 z3CeBZ&z-CDe5mceh^Clc%Hf6waXF05%g9VpbWz4%NSua(_P+lm8jb!GfOqOh^3kaaw!m8c2va@lAKl`oHpk|J`X{-fRI5T zd5Qr8QxZv`EFTWuxjhsnqZwWV-QYS zN+&fz<55`063|f+^c3C(gB~$&AsPU5a(L!IuiP7)x z;kK{i8BKU(HsXdUv0aFv9n1rdN;YuK0vxuG6c}NoCjs3j1BC5}(LFwT)hRrzM@r!Gik@U!8Ub}q^v%QesyvM7?OaCjEFI&7Y<4p+!x>FU4*Q#PfoYoMuZ ziBxG8Wr;8#04xh8l@H0Ht(o0Mxc* z5sW&INBD9OG{%R#kfjHQ;2?4<$mrqIa3xMykHb}3u_zS=Ls1k@h4TYGGgNms-J*_?EpaAU1lI$`kC@rEb7sL*j2fP7e55D)j3tlMh~e%sw}Xpqre%$fTt_M60{{P zib!h1h2hoIB<`)u5ZFYNwVrD4-2TCQ#LXvUQb*Z16*an@7MiW;vbYg=11 zdFcK-1GL8-anZl#3$Tm_a9sBUhwkq>y)@K^+|h{O}C3ra$G8LwD^3{R}n9D zdhoii&nm6`Q+#dBN9zVkjD^{|C%K3BIy(v8FlmDL0ws0KD;Zegy$=i(WwYXBGv z(mgA#5PJk&`2ALWe~9QRTs{j5V5VbtK*mA`I>6E?Izd^oRQPONbzO5^8*pae5crJZ z%*kvbmQI1;V>kW@i{7h(h()y^!+W^cucEC2pE`sZ!V{P&ggFMTL_q1Z1y=!TcOn`p z=9)0~by+By((up9k`4%m4R8j8F044X72+Hb932T^Io^{vD!1;w_;$G??5$JbG{9H+ zbn^lZn)>zU4fw!2OH9s+^f41*9T#C#9t2qmcNTKlyF?hCkt~zSrKt)bY&s$SC%ZOh zp%5eylEVqP5YAG_nHa2MrYvOe+Zyl-EEZC6b@p@?(atnN#_;nWa=siUPLgD)h&*Ul zk+-u5UWCGLBS=Aj40bf>TCi1=Kx7{m5EvFG!UP6Dpgh0Aeda{tBVl9)Kk57V1ebY} z1#doC;K>l5g(%p$!_8pw`j}*xH=~wV!O@gqtW2C6(P;Nb;%+&qT>txg>=exb<<|$k ze%Lz(MU~zNdUv|{G5?7u&3afsW+kqX+&V5P&fUvh6z3{(^@xKXvBzcLEmyWAB?GpZ zale<IS(`xE&Dza44i9%wJtVJ2)@D)yL6EY5D~|O;Nc;-#LLg>Mg}4%bT98`NP$~wj9O6tSYQ~W~^I6T&$MFTo zqyQ==p8l27D=>Bzylt-g=MM2Q=m2i?8Uh~2^f-#eZRA6bnB58H9}XOofiK?QNI@zb zNn>gmP~)_*G(F&60IR+iK@k7qT?>|}X&l@*+W-9?sV?p&yEOQ1gK8tbF~C;_oEze5 zSBSYi;VXh3Ig?(&7{c8j7SSY*%4N_m9Jx32?7t#|Geq@xkApwMkPGk)1D>`uEj(5G zvW{gRHCTMAs-)dgKrMuO#v(OZmB)3^WK*VGM2GRCrko095n@v0^z~GD?H% z7b0z16C?S0{BDwzY-vu4$dWe47=hmJ<8zS}-3*tr^^62DHox%*aib$b>;r z!NTCEh}MC0h`W;;?d|Cl6dd9$vZ1Y+9-05PN6I|}UBYVKSi>wXVwbSs8hZ)+oq`e; z3!R+WN_XJN(mt~X+iR9*OgivF!)KA=MaS>PSNu$NSQhlTzHsvAyLZO*>-^IDUC~VA zK1;lhUw##|zF+y$)}@b6o(+@xlpP2?b78r|i%vS@RIKBDIXJx{;vb$cQVc)0hIoe-i*mCROGv!A; zYfIPvh~>5DG%{t|f}WlDqfNKmF8nycanF-&P6g*9)>XDYxOKShI?u&t?v6J5A~s}U%`v78i}bDCKV9h-k}G)b_oe@rbq=fdd92f-qjCLaoN&4`9a`0)D!42# zU7^Tr?c$Ow%W}@H+iN-}OS4^aGcz#O1vW$Y9kJY{ei*S`60-!WbOsW-2TuiNB^OQ^ zSe!7r6Wy^6rm3>F$_54u81TCW;J(D4IV)&AEUyhmofg!wWUDkb7nqP>E-a+J;^ezm zZ|8(RTe&&<_`}%-2V=`31|E6zl}cRvfVX<|g{7I|xy#HKFWoVu)x8_40XM^@>KA?K zyeeeIt6N7S+s}A0BJ{cK(aUYuez?4CYeC=jhJ%i7xZ0stu~UlvtG-b!*6LYiD9Rna zT$o)h9b9pF+U>WAa~DYsrc~VdoVW4dk=Ngs*~~t_A@VPu;%l0<;;4Xo_EYv2&oY>7 zDVP*pvE@j=^}~ZACY*iHnmQkLI;i-swY8cDHEUY^I6m>tm^+phiNkx&e`oA;|JvDd ztNwYH2KmY}FYY+8aM$RhsYh+{Z~029#NE4(9zpeQsdC)Mt?*0dEf=}qgc1r9D! zB*LhSG<@r#-jTV}?yjyPFE<~W#*WN`_NoWz;?jSMY(F_NrAKD}!6W}m$26s1{BvH& z=V8ZY_1+Y6X!V`-IzH?bYYgOxl}{IK%rR}-{)gnA`|E`Ztop=E&+2i1VznS{@44&U zT+}5qgkrxaQDxRRt07x!zw1SIOPt)g_m&SB_zw#N3yhFSSZ=VlQ}O!9r3cc^e9qr~;CQuc<~tkrX`iBR>H2u< zy3Eg9Fr)BL(wXb0p8L9g+H%W--uf)xb;+G2%e#k%4GoLgr>EBcHNWJUg);K z((bdb)2UO#rj_-R=$smUL^Y`Fj`Y!*ugm>{7A*P8x_wFLtP4|mM(Xu6mj4J;U*T|m zDD9V4=a>>fQ*pnWsO(1Gs#%}A@sZ^*Wji~yJ;iyvXvBtNyGrSsdBGc{T4{p{UlI+3wJIYO-@udz{qx|89^4$yCs7$qd%KCifBCq%f-`efg02|+Px{$^6byCz;=;8fxFZ)ml+%y2+)=_1TY`djle@FUZg} zk66K|qbr4>?_Q-Z5AR&QU`KxEelt7puYR++H7jrAsipFup_huUz1{J~bN-RI;Onba z_};clpK7{jflMCr+Nk3GH;)Qg)y4h^mIH!IhkF~ImiOjvP3u;^U~PuWRTH)E6BVuQ z_IHWCp-=bxbhbR{+p!}FA)?4FE%omE(WhjswC$Q7@`~`Sa`hd5qS~7`JT4-p#Lk}U zx~cP}F3FG1Iwidh_IA*j=~Y!w=<%MbGD-=-$Fb zmn8bdw4D0DM(?Zr9YNIOp7-a|k&G`3r905URe@FhW$pjDFRQnA8JKo5ST^xu(RE%6 zyjVvXoN^ruUd;QSc`@c~1)eZ?z5v%>{TKY+si#l7p|&Bbo=W}JxNhkCRMRDAap=dV z33<=M+BjVbT%q>;SdEitp7rs;k<*H-;+Olngl(O>IHvMm?zYYAKjm)-m3?gY#DD0~ zJL*Om#}-ryoj$8Y?vFX)bg$Fd?YWN@Ys_UYh`GIabm!PNlLIPWzkT`QURg8uwwq&S zyo$0OZa=@oeA3+tzQvon5ue6XAAPL1U_!)Uv$Nx5lkNLu&oupH{wnHX+VSQ;;w(GGHo(wsE&Zs7TKWF{9FOIjGjh?++@I|ks z--`RSca{td*~U-oAW8I#SRL>z;`zG%`IiOms@dj6qGoqBqi;N@{_>!M_KK8gKOzmC z2k+uq72KWd-!fz0q;ZpvlwY1{wNfLl^3~jxW$C5reVw-T&qNkeR=hDB^ue&S#g>t$ z`Y!Gua+z`cUO(SUs4%I+nUf=rY&QO^DJ$PI&vzB&*Y`)p%qe%Z7i+Kgid4C{&zCOY z@xgz;tn=T7>G-@J-tGJ+{5S1IyThM?a`kYdeX#!)5fJ`56oCJ^?f$>=-gBz6*4(<* zaiaa;OlOljJMP{)FukjFghhK zPOlE&%&lFRH7V_q-Sv>D)n%t2*o8Q^Twd0tdpGs_Y{xHs$B(CTM!fAw&-z?=aq7Cq zR#OWVD38f(6OoVk{DvU%s|AGO?l zdxdIs-g_B%??r#-y??tAZsNVQ>zy!oZ}8`cE}n*ct2L*1JY8H~r2jkjTb(>#{BI90 zO0@G=7*=P8=lK>cFhF)7R__NeE52Q;B;q=kNms2 z+l?b;jm;FuCU36xsZ4V^&{gwEQe1n(X@3dZ-{qUS)*csi>M!zjkf|MhlI#0pxIpjL zUV(V*t4o`Wo<{sN^niy$pLx5UZXco+Fz9@g%<2VwblX5lTyK_Yn9Jiec zT=$^%*^mwQ<}X%wY>qh4&sx{EzgpXFWBT<93Dn=dZr$qew8L`(eiY?f70ouFQy&ND z_Axy?ySdfrz#4~|ZSOiBcRYXDwJ6NizGI7oUQc3PF1$H?*3s6|9mOpbJe?Q)t#-{U z+0!z5dU%ZWk<=ZtEJo<2P`*y9dXC$C z-|E4J)kl-p4~*uX_jit5Ua@+?z-8;IrsSDknK(i(ueposVwIe#-eYWbRlOW`)av3> z%PvP|ya>JhktLCiQX6tOF>|SCJl$rRmJ;pxTZX$R%MIS8y!7!;C#2?Xj)CANjEMv zz`eD@p|vgksaN+AwvHLXtq>k`Kr}nyVlA6v>^UYgkITv%(ducjbLg;;UaK$0o=fJ|@hIi*`!Iel}x zFNyMzqvp!2n z^!6*&AAS`!4_-`uBA;itFpe&1q17-=IV@3$^$)tl`b)j8@!KnFIE=M^47MZE!YWKG z>&TL@ITTDcI)#V5u?!WPwUNfck;K#Aosw1Z@jn(6KR_wHK zXEyPgp zMypxFIm*vR!9qAc6OkhncM%O)Z;?pk$-LNt_gYHuf6009-kTRs-Q6@)NAhD`@{+f* zEw5WVO_*=KHmK)QY2}yPYm$r^%f^fP{J80mqVxWFRt>T$**E@piOIZs(~~8mcbvQM zML6%a$Fe=Z6@-<=$S=nbR&X&*Wjq z{xP$zjk?@o#LjmeTJFj&zdmrwK1sFI>&fgu=yMHdl&UEE)MOIpoPU z;SrY0<+18lt~|f(`6VSi{A+;A1mO~u8FrmIEPnO<%G!c&mmhnxwigF4YyH^N{)SI! zd;Yb{cgB77arB(cn)5P!z~Ox$3B(=Y#UUm_rYE zQ8g6e@j=Ytg$;faRdB_;^M~!vWS}X{DUvfXs=CliaDM|icI2-nK zcXdd1bxrp1ar1Oaa!dAda(DF-If>nqQk+sHv|Fm!%Qe|8wdvV#$DEW0k=%17OO3p| zns3Nnd^C@m{O6ZrzkPQl&6Sh)V_@C&C%4#~6L8{0dpXhG=P z%iIqhW`(0V?s+h3fm3U*mK`i#q@PRg6*71E@Gn13KYn~6vHPQ-%BXVZRfB&ZBK{iYZu2Cv|Y`8pE&wL$g7yRH;WurJL?#( zx;x?QExQ#DFHCO#Y4iKcAJn5Q*G_Ezw$5*Nzm*}g#^l`pz>RJ6)c2##jF zU1<*==3vH?fFc@$|M69;g!=X30);OwP;hYp=G?MZpJm$S&MPkGEG^Lvci;MEV-Kr2 z0cQ4@HN7I2ZsvKLazeKb-KTDO!z=Tk?q#)C-g~F>Rv-4cz|t25oExQ)pE9DbBC$o* zs@b8HHR*lM-kKS;R^YgA)s-a1b zerI;xvh=sdvfs9jt2TTWvh}ui%JQ5PkAVxTlC_-9`AzzC?`J>eW8xo=>N3pqO|?tU z`{UagU{kyAuIJXVeb=mAHPO59?5rZk_YpA@tUPS?`Q)SwjoMnNwZg=D*s*t8 z*=6M)6JDL}wrfnqi0!+r6gCOQb{mhkwDY!^27&*n!D}Y2G`C)~B=woNS>HQ$p|cW3 z-nEH8XVtk~xBVMp+qYo9I#bZw<%0FS+<2|7Ap_QZLU*<=r%Dp8?KW7q!|Z(b&X0Vm zwQ8(Gw;OK`8XSCo&puhfZP}w1w|0e0Kk#y|dF-{)@@L_p^rB^BZ$0ZhXVupmt5fgp znOZ#P`Nij*ABDDBq-VEq(U7#Fhoh4QCaiTCb}6wjQ-}uK$EkpUtU|_dqj12Kx9s>Dbe`AE&AMuJ5LrJ5}mOg z(vsa<1GtU6D=u)ia=IcS~2HMWcJe3FQ7X{?%bJ+|o@T_jH-xH{!dy z_*a_FLW`dqDp`Hg-jpqvb~`%X)cM?HMOyQjYEyLXBu|_kFlETueD(2rBni%r?LO_3 zoyji!zO(&f!O=FmIxLy@Hsf0IuI3&Krp8N#jUVz?NM!fR>JtZ_HSKKvwr#*)-A=Fm zmU*uo-?`PyhrVVD&Tp_7P~mg8Cgn(w@4y1x3|yi5t`ggH6y3jv?=#X-|ZgvHpJoP*EXkjc)ZN9S@~d9%jc(WywzMa z-EQi%a7|yeH!7npHrwZFeD~D>r<1*BuMhPR92D$5xMJmlwO6hgjO-fR!`roAOVgoi z-nIO6)3LQMW7^uDqtbJvi#93t`Ehv*S@w4AO4{p%r>gB<7ykavxS{4!gCW6-`akfq zm(1H2-z}+ZpGC6g)UsPw-+p>ySUscVof8YDo_-OZ?0>H}zj8!7-T>Yi-kQ8-`a8wq z4X>^rG~?{N<$p-i?!`@s%d@E;s^g|yMi;9?cJzEZb%AQ_i4y>8EpndQF zOOJzR=gyr|P|*By$H~o>ed%Cb^nUiIU74FYPrdszZ=mV3CtlO@jXVFixXwB~@8PP? zU;lclR`evJ&8n~Tb57XUTetGElPCC|nH3Y!Wmi#b^Xh>*u2uyv{RL~p*y&6`% zl|ALi=ruE+dYrs@YFg`~k2K;nM+d(3e|BlfY^_f(QX-PhuE@!o;quU+hqluLzYa;? zR#i5$o@UazO~1#P265rh@3v|?Xr-ss+$}s{^{|&t5v%6S*W_uZZ=Wjb_+**(wlN3w z7EE^NKef8N=IxACvp?)}9yOS&-&=Zjv$sRW*&nm*xlhQvKJf{Mo&ZohipBo*grkJz&Qq&19c?(|C}CN{$x$;{2hG5Wl&pvK6tG!v7S;54 zgd=?Pgka0UW{rcNUCpaIjHZLrer+iseZa65@p5jICv6DHK80*6NgMYTh z9B6qsyTfG*KJYK1SnsNe*UT?oNf$3`8qMOX#Bd~`qDRI0|2OXF{&Yd<&o^NM0)hkK zCTyU;lWR~w@ISl>TUDaD1I}*x!BxJVb#c0CG5Ndji27++`M)Plrsd7HD4O1v#=8g_Z0^@6z47(pB^Dan2k4A$ zEqwM>Z|eKcLo+He717!k76?$u@Gs8?r+0QtII!=5cyIqr?NS|jzcPqw$q_a4H#41V zaZ*)p>|in7a}6D&^*V9nu;@VbOW~WnRn`UEn6&(&oQ}0EnHQ{a`pNqa#V2;PNObLy z81kk^hcee;mI`s&goNVgHK!(pP2978Vf-1fUXI;C)7rA4ZMVccOMCg?_*fW;&y2s zUiTLDA!zFE-$tny;5U_{MdRNF4jLR{cEByY*YND_e|LT5pGT<|KExaw_jqnxQu-O+ zit)WKot$C3|Nr!&UVRjak7H;j+SAF^jYO#b0~huFz#F2|DiWRIJ4D5k>EelW@wg@d zYBB9wA78QzMSl!XBRhvO(P?00l#B9j_5FkJG!lON)exRCe~twIl@@>3i$_qgMlW99lfv=3edg z=b6#5Dh^#sf^@%Zi5heKU83&j{>T0N{AXT|Gx`x%+sDXbT8o&@ikAV}hgaZz!7C+*`Q8 z=0VD{kMDLBCik?_Dsc9R?LW8QQr>8-QHEQ^i*%07xUAV>M$v)OCl;N4Ii&Q}oi_bc zZ^bL7HCGW|T^(sD-SPSky7frJpFgSfM@ff)k3TK$xa{LiS)n*nI$%lhu|=xOeYQP2 zcs63qJ^rZZ@o3n1K_q$!9TUvcQ zygcHn-R3n*u1#6HC}8f9Qzri5x65knXUx+{rO$0sxOTpkJm~%O(Jp3(tXB2hu=09P z+o_TLE>)jB(EVP<&DcF>ZqmEI9e)`9MPpZdmzr6YCf+XFPxatBztpIT^tk#`wWaxm zb%h?5DqF95UOSgC?xtd7s4grxXW@mx) zhpU^&3(l4BjU9*syz9aLU90}TT%aacjnmt?Y{8govleYgT3fX@u6w||J$vz-!HnYaDSMi{pQpct=G>_Nm@L}^O_jr`(@J_ z6^$7F%azYh`@SxjdZy*~V(-*|^!|pUO;1#~&K%Ie)6|?oO-Q z_%2=3k~0wWWM!OI1TqI7})ZwnRxk=qBd`$H)St=x%%nO^0A&p*sb*}X|!GUpuXA%PF2r(qq_Op!sw%IYs~5vC^OKMQKPp8Dx97ls$4c% ztxxB%HahHWE?cwACp{#YZ{?b`A)@673<^9$Uze{jo`?4N5`M7NsL zp@-k4G~Jn1S$0RxtjhgdkvU4|$t3+#?}p9l$I`y?P(klGl~%$!wDrnqp%!Q7m{wQs z&MZ_JmK)V0y|#l#&ZG5LPpp@A4X)VoqVW6mgAYc0Up>0L@XQv;)PVtN6IM*xB1^sa z;T*c$@`7&0;mFS|CRCTObKopChHSd8RsS#C5X`j^z@EF|T|e6Zx!PWP?e*wbeC2lQ z@wenJ!zQ#*J5W`;moDBlzj!-cyyf2#YX8e^PegPS`2nDZSBR%mpeUGj^6+pE6gkkX zm=L{r(-2+A{5eixxETKOy-XO0{|sW|6$UOEz@MMGJZ^bAy1B7d{VtDo^>p*@Rfho2 z&md?8-MV2*3Gd?_X?t3rWB|wTcuxp_a;D`6WyUyyDINc9Coc7DRF@LLJL~#;J7j}e zC7@MseYWAf#Ok^{zgqZ{yzCN~acQ#>O*MO5ow#^HLhj}T$*;FupLwv>`$wyUL0QM6 zT+PINhaGqwpK_*5n0aLb?={6SXnlkwwW_sx>3l7XE5AKy;;3m}HhWXy|5Whs+#L3^ z?zf)I2%CIv%08Rv>v8j4?&1NdrRs{#9mzaLU9rW2-RuF!Jj8~#UWZjxX1kHE@!D>%p~0lMn85Srn#a$W194AdCxAsmo;Lc<3p|z zmMd-Aa5BXfX*4;vpnpEKLb(!&kL=XD))RF~HkE64z1Ynus#DLiQRxGFE9QH|UZ;!i zHex`ji;BBgRcaMHf?XQhP6-ks8`83SCu29W7=q>Cs*b!Ea~kfF4z|xZq#pPw!z5@ zr?1WKv1iexUC)wQj$5}s^K>a1(t2Y}Wp2icz})8FE>}wTS2*>U^-`{;HT;21(g*{! z?YiF`zp0vTK0K(rU9UD*o_9H~Icdqs4eWu(ud0|!9vRlEuOG52@YSfzYlD8gJt2=b zs?FBjYu0CaMkh^Q?)mI4R@WDxQxE3OP%r9myl~LFuAx7=y^;?rWO>NPWt88G*^__M zV^w$a-4n0eyz{Q?S?xk2v$8C2)?4@IDi%jK-p=qiB3b<=Ub4UAV-w-JLp@Bt@cPV~ d%+t8pJ;=|fquKroTW?OIc5uBoAK_K%{|7f^W|{y1 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Threading.Tasks.xml b/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Threading.Tasks.xml new file mode 100644 index 000000000..b47921e5d --- /dev/null +++ b/packages/Microsoft.Bcl.1.1.10/lib/sl5/System.Threading.Tasks.xml @@ -0,0 +1,475 @@ + + + + System.Threading.Tasks + + + + Holds state related to the builder's IAsyncStateMachine. + This is a mutable struct. Be very delicate with it. + + + A reference to the heap-allocated state machine object associated with this builder. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument is null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + + Gets the Action to use with an awaiter's OnCompleted or UnsafeOnCompleted method. + On first invocation, the supplied state machine will be boxed. + + Specifies the type of the method builder used. + Specifies the type of the state machine used. + The builder. + The state machine. + An Action to provide to the awaiter. + + + Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext. + + + The context with which to run MoveNext. + + + The state machine whose MoveNext method should be invoked. + + + Initializes the runner. + The context with which to run MoveNext. + + + Invokes MoveNext under the provided context. + + + Cached delegate used with ExecutionContext.Run. + + + Invokes the MoveNext method on the supplied IAsyncStateMachine. + The IAsyncStateMachine machine instance. + + + Provides a base class used to cache tasks of a specific return type. + Specifies the type of results the cached tasks return. + + + + A singleton cache for this result type. + This may be null if there are no cached tasks for this TResult. + + + + Creates a non-disposable task. + The result for the task. + The cacheable task. + + + Creates a cache. + A task cache for this result type. + + + Gets a cached task if one exists. + The result for which we want a cached task. + A cached task if one exists; otherwise, null. + + + Provides a cache for Boolean tasks. + + + A true task. + + + A false task. + + + Gets a cached task for the Boolean result. + true or false + A cached task for the Boolean result. + + + Provides a cache for zero Int32 tasks. + + + The minimum value, inclusive, for which we want a cached task. + + + The maximum value, exclusive, for which we want a cached task. + + + The cache of Task{Int32}. + + + Creates an array of cached tasks for the values in the range [INCLUSIVE_MIN,EXCLUSIVE_MAX). + + + Gets a cached task for the zero Int32 result. + The integer value + A cached task for the Int32 result or null if not cached. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + Represents an asynchronous method builder. + + + A cached VoidTaskResult task used for builders that complete synchronously. + + + The generic builder object to which this non-generic instance delegates. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state. + + The builder is not initialized. + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + + Gets the for this builder. + The representing the builder's asynchronous operation. + The builder is not initialized. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + + Provides a builder for asynchronous methods that return . + This type is intended for compiler use only. + + + AsyncTaskMethodBuilder{TResult} is a value type, and thus it is copied by value. + Prior to being copied, one of its Task, SetResult, or SetException members must be accessed, + or else the copies may end up building distinct Task instances. + + + + A cached task for default(TResult). + + + State related to the IAsyncStateMachine. + + + The lazily-initialized task. + Must be named m_task for debugger step-over to work correctly. + + + The lazily-initialized task completion source. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Initializes a new . + The initialized . + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Completes the in the + RanToCompletion state with the specified result. + + The result to use to complete the task. + The task has already completed. + + + + Completes the builder by using either the supplied completed task, or by completing + the builder's previously accessed task using default(TResult). + + A task already completed with the value default(TResult). + The task has already completed. + + + + Completes the in the + Faulted state with the specified exception. + + The to use to fault the task. + The argument is null (Nothing in Visual Basic). + The task has already completed. + + + + Called by the debugger to request notification when the first wait operation + (await, Wait, Result, etc.) on this builder's task completes. + + + true to enable notification; false to disable a previously set notification. + + + This should only be invoked from within an asynchronous method, + and only by the debugger. + + + + + Gets a task for the specified result. This will either + be a cached or new task, never null. + + The result for which we need a task. + The completed task containing the result. + + + Gets the lazily-initialized TaskCompletionSource. + + + Gets the for this builder. + The representing the builder's asynchronous operation. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger, and only in a single-threaded manner + when no other threads are in the middle of accessing this property or this.Task. + + + + + Provides a builder for asynchronous methods that return void. + This type is intended for compiler use only. + + + + The synchronization context associated with this operation. + + + State related to the IAsyncStateMachine. + + + An object used by the debugger to uniquely identify this builder. Lazily initialized. + + + Temporary support for disabling crashing if tasks go unobserved. + + + Registers with UnobservedTaskException to suppress exception crashing. + + + Non-zero if PreventUnobservedTaskExceptions has already been invoked. + + + Initializes a new . + The initialized . + + + Initializes the . + The synchronizationContext associated with this operation. This may be null. + + + Initiates the builder's execution with the associated state machine. + Specifies the type of the state machine. + The state machine instance, passed by reference. + The argument was null (Nothing in Visual Basic). + + + Associates the builder with the state machine it represents. + The heap-allocated state machine object. + The argument was null (Nothing in Visual Basic). + The builder is incorrectly initialized. + + + Perform any initialization necessary prior to lifting the builder to the heap. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + + Schedules the specified state machine to be pushed forward when the specified awaiter completes. + + Specifies the type of the awaiter. + Specifies the type of the state machine. + The awaiter. + The state machine. + + + Completes the method builder successfully. + + + Faults the method builder with an exception. + The exception that is the cause of this fault. + The argument is null (Nothing in Visual Basic). + The builder is not initialized. + + + Notifies the current synchronization context that the operation completed. + + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + This property lazily instantiates the ID in a non-thread-safe manner. + It must only be used by the debugger and only in a single-threaded manner. + + + + + Represents state machines generated for asynchronous methods. + This type is intended for compiler use only. + + + + Moves the state machine to its next state. + + + Configures the state machine with a heap-allocated replica. + The heap-allocated replica. + + + + Represents an awaiter used to schedule continuations when an await operation completes. + + + + + Represents an operation that will schedule continuations when the operation completes. + + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + + + Schedules the continuation action to be invoked when the instance completes. + The action to invoke when the operation completes. + The argument is null (Nothing in Visual Basic). + Unlike OnCompleted, UnsafeOnCompleted need not propagate ExecutionContext information. + + + Used with Task(of void) + + + diff --git a/packages/Microsoft.Bcl.1.1.10/lib/win8/_._ b/packages/Microsoft.Bcl.1.1.10/lib/win8/_._ new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/wp8/_._ b/packages/Microsoft.Bcl.1.1.10/lib/wp8/_._ new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.1.1.10/lib/wpa81/_._ b/packages/Microsoft.Bcl.1.1.10/lib/wpa81/_._ new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Microsoft.Bcl.Async.1.0.168/License-Stable.rtf b/packages/Microsoft.Bcl.Async.1.0.168/License-Stable.rtf new file mode 100644 index 000000000..3aec6b654 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/License-Stable.rtf @@ -0,0 +1,118 @@ +{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Tahoma;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fswiss\fprq2\fcharset0 Calibri;}{\f3\fnil\fcharset0 Calibri;}{\f4\fnil\fcharset2 Symbol;}} +{\colortbl ;\red31\green73\blue125;\red0\green0\blue255;} +{\*\listtable +{\list\listhybrid +{\listlevel\levelnfc0\leveljc0\levelstartat1{\leveltext\'02\'00.;}{\levelnumbers\'01;}\jclisttab\tx360} +{\listlevel\levelnfc4\leveljc0\levelstartat1{\leveltext\'02\'01.;}{\levelnumbers\'01;}\jclisttab\tx363} +{\listlevel\levelnfc2\leveljc0\levelstartat1{\leveltext\'02\'02.;}{\levelnumbers\'01;}\jclisttab\tx720}\listid1 } +{\list\listhybrid +{\listlevel\levelnfc0\leveljc0\levelstartat1{\leveltext\'02\'00.;}{\levelnumbers\'01;}\jclisttab\tx363} +{\listlevel\levelnfc4\leveljc0\levelstartat1{\leveltext\'02\'01.;}{\levelnumbers\'01;}\jclisttab\tx363}\listid2 }} +{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}} +{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}{\s3 heading 3;}} +{\*\generator Riched20 6.2.9200}\viewkind4\uc1 +\pard\nowidctlpar\sb120\sa120\b\f0\fs24 MICROSOFT SOFTWARE LICENSE TERMS\par + +\pard\brdrb\brdrs\brdrw10\brsp20 \nowidctlpar\sb120\sa120 MICROSOFT .NET LIBRARY \par + +\pard\nowidctlpar\sb120\sa120\fs19 These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent363{\pntxtb\'B7}}\nowidctlpar\fi-363\li720\sb120\sa120\b0 updates,\par +{\pntext\f4\'B7\tab}supplements,\par +{\pntext\f4\'B7\tab}Internet-based services, and\par +{\pntext\f4\'B7\tab}support services\par + +\pard\nowidctlpar\sb120\sa120\b for this software, unless other terms accompany those items. If so, those terms apply.\par +BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.\par + +\pard\brdrt\brdrs\brdrw10\brsp20 \nowidctlpar\sb120\sa120 IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW.\par + +\pard +{\listtext\f0 1.\tab}\jclisttab\tx360\ls1\nowidctlpar\s1\fi-357\li357\sb120\sa120 INSTALLATION AND USE RIGHTS. \par + +\pard +{\listtext\f0 a.\tab}\jclisttab\tx363\ls1\ilvl1\nowidctlpar\s2\fi-363\li720\sb120\sa120 Installation and Use.\b0\fs20 You may install and use any number of copies of the software to design, develop and test your programs.\par +{\listtext\f0 b.\tab}\b\fs19 Third Party Programs.\b0\fs20 The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only.\b\fs19\par + +\pard +{\listtext\f0 2.\tab}\jclisttab\tx360\ls1\nowidctlpar\s1\fi-357\li357\sb120\sa120\fs20 ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.\par + +\pard +{\listtext\f0 a.\tab}\jclisttab\tx363\ls1\ilvl1\nowidctlpar\s2\fi-363\li720\sb120\sa120 DISTRIBUTABLE CODE.\~ \b0 The software is comprised of Distributable Code. \f1\ldblquote\f0 Distributable Code\f1\rdblquote\f0 is code that you are permitted to distribute in programs you develop if you comply with the terms below.\b\par + +\pard +{\listtext\f0 i.\tab}\jclisttab\tx720\ls1\ilvl2\nowidctlpar\s3\fi-357\li1077\sb120\sa120\tx1077 Right to Use and Distribute. \par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-357\li1434\sb120\sa120\b0 You may copy and distribute the object code form of the software.\par +{\pntext\f4\'B7\tab}Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.\par + +\pard\nowidctlpar\s3\fi-357\li1077\sb120\sa120\tx1077\b ii.\tab Distribution Requirements.\b0 \b For any Distributable Code you distribute, you must\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-357\li1434\sb120\sa120\b0 add significant primary functionality to it in your programs;\par +{\pntext\f4\'B7\tab}require distributors and external end users to agree to terms that protect it at least as much as this agreement;\par +{\pntext\f4\'B7\tab}display your valid copyright notice on your programs; and\par +{\pntext\f4\'B7\tab}indemnify, defend, and hold harmless Microsoft from any claims, including attorneys\rquote fees, related to the distribution or use of your programs.\par + +\pard\nowidctlpar\s3\fi-357\li1077\sb120\sa120\tx1077\b iii.\tab Distribution Restrictions.\b0 \b You may not\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-357\li1434\sb120\sa120\b0 alter any copyright, trademark or patent notice in the Distributable Code;\par +{\pntext\f4\'B7\tab}use Microsoft\rquote s trademarks in your programs\rquote names or in a way that suggests your programs come from or are endorsed by Microsoft;\par +{\pntext\f4\'B7\tab}include Distributable Code in malicious, deceptive or unlawful programs; or\par +{\pntext\f4\'B7\tab}modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-358\li1792\sb120\sa120 the code be disclosed or distributed in source code form; or\cf1\f2\par +{\pntext\f4\'B7\tab}\cf0\f0 others have the right to modify it.\cf1\f2\par + +\pard\nowidctlpar\s1\fi-357\li357\sb120\sa120\cf0\b\f0 3.\tab\fs19 SCOPE OF LICENSE. \b0 The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent363{\pntxtb\'B7}}\nowidctlpar\fi-363\li720\sb120\sa120 work around any technical limitations in the software;\par +{\pntext\f4\'B7\tab}reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;\par +{\pntext\f4\'B7\tab}publish the software for others to copy;\par +{\pntext\f4\'B7\tab}rent, lease or lend the software;\par +{\pntext\f4\'B7\tab}transfer the software or this agreement to any third party; or\par +{\pntext\f4\'B7\tab}use the software for commercial software hosting services.\par + +\pard\nowidctlpar\s1\fi-357\li357\sb120\sa120\b\fs20 4.\tab\fs19 BACKUP COPY. \b0 You may make one backup copy of the software. You may use it only to reinstall the software.\par +\b\fs20 5.\tab\fs19 DOCUMENTATION. \b0 Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.\par +\b\fs20 6.\tab\fs19 EXPORT RESTRICTIONS. \b0 The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see {\cf2\ul\fs20{\field{\*\fldinst{HYPERLINK www.microsoft.com/exporting }}{\fldrslt{www.microsoft.com/exporting}}}}\f0\fs19 .\cf2\ul\fs20\par +\cf0\ulnone\b 7.\tab\fs19 SUPPORT SERVICES. \b0 Because this software is \ldblquote as is,\rdblquote we may not provide support services for it.\par +\b\fs20 8.\tab\fs19 ENTIRE AGREEMENT. \b0 This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.\par +\b\fs20 9.\tab\fs19 APPLICABLE LAW.\par + +\pard +{\listtext\f0 a.\tab}\jclisttab\tx363\ls2\ilvl1\nowidctlpar\s2\fi-363\li720\sb120\sa120 United States. \b0 If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.\par +{\listtext\f0 b.\tab}\b Outside the United States. If you acquired the software in any other country, the laws of that country apply.\par + +\pard\nowidctlpar\s1\fi-357\li357\sb120\sa120\fs20 10.\tab\fs19 LEGAL EFFECT. \b0 This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.\par +\b\fs20 11.\tab\fs19 DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED \ldblquote AS-IS.\rdblquote YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.\par + +\pard\nowidctlpar\li357\sb120\sa120 FOR AUSTRALIA \endash YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS.\par + +\pard\nowidctlpar\s1\fi-357\li357\sb120\sa120\fs20 12.\tab\fs19 LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.\par + +\pard\nowidctlpar\li357\sb120\sa120\b0 This limitation applies to\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent363{\pntxtb\'B7}}\nowidctlpar\fi-363\li720\sb120\sa120 anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and\par +{\pntext\f4\'B7\tab}claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.\par + +\pard\nowidctlpar\sb120\sa120 It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.\par +\lang9 Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French.\par +Remarque : Ce logiciel \'e9tant distribu\'e9 au Qu\'e9bec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en fran\'e7ais.\par + +\pard\nowidctlpar\s1\sb120\sa120\b\lang1033 EXON\'c9RATION DE GARANTIE. \b0 Le logiciel vis\'e9 par une licence est offert \'ab tel quel \'bb. Toute utilisation de ce logiciel est \'e0 votre seule risque et p\'e9ril. Microsoft n\rquote accorde aucune autre garantie expresse. Vous pouvez b\'e9n\'e9ficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualit\'e9 marchande, d\rquote ad\'e9quation \'e0 un usage particulier et d\rquote absence de contrefa\'e7on sont exclues.\par +\b LIMITATION DES DOMMAGES-INT\'c9R\'caTS ET EXCLUSION DE RESPONSABILIT\'c9 POUR LES DOMMAGES. \b0 Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement \'e0 hauteur de 5,00 $ US. Vous ne pouvez pr\'e9tendre \'e0 aucune indemnisation pour les autres dommages, y compris les dommages sp\'e9ciaux, indirects ou accessoires et pertes de b\'e9n\'e9fices.\par + +\pard\nowidctlpar\sb120\sa120\lang9 Cette limitation concerne :\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\li720\sb120\sa120 tout ce qui est reli\'e9 au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et\par +{\pntext\f4\'B7\tab}les r\'e9clamations au titre de violation de contrat ou de garantie, ou au titre de responsabilit\'e9 stricte, de n\'e9gligence ou d\rquote une autre faute dans la limite autoris\'e9e par la loi en vigueur.\par + +\pard\nowidctlpar\sb120\sa120 Elle s\rquote applique \'e9galement, m\'eame si Microsoft connaissait ou devrait conna\'eetre l\rquote\'e9ventualit\'e9 d\rquote un tel dommage. Si votre pays n\rquote autorise pas l\rquote exclusion ou la limitation de responsabilit\'e9 pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l\rquote exclusion ci-dessus ne s\rquote appliquera pas \'e0 votre \'e9gard.\par + +\pard\nowidctlpar\s1\sb120\sa120\b\lang1033 EFFET JURIDIQUE. \b0 Le pr\'e9sent contrat d\'e9crit certains droits juridiques. Vous pourriez avoir d\rquote autres droits pr\'e9vus par les lois de votre pays. Le pr\'e9sent contrat ne modifie pas les droits que vous conf\'e8rent les lois de votre pays si celles-ci ne le permettent pas.\par + +\pard\nowidctlpar\sb120\sa120\b\fs20\lang1036\par + +\pard\sa200\sl276\slmult1\b0\f3\fs22\lang9\par +} + \ No newline at end of file diff --git a/packages/Microsoft.Bcl.Async.1.0.168/Microsoft.Bcl.Async.1.0.168.nupkg b/packages/Microsoft.Bcl.Async.1.0.168/Microsoft.Bcl.Async.1.0.168.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..fe97bce4469c6458b83462590de4b718b6db25db GIT binary patch literal 491429 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

jF@S1t6*?}EljYghc`=Jw?Jwej@& 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.Desktop.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.Desktop.dll new file mode 100644 index 0000000000000000000000000000000000000000..1288a177051fd60c5aa7ef8f9266efb7775a754d GIT binary patch literal 47424 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

!oCb34bXoY0QB>Bv?4f_phw!L4KBC6 zvme@+cg`w)buBp*EPj8<3+*abJUu|Wb3FyeghTG*G#TK#uwn9no>th(O}s;!By#Djh!AB3)wZwK!XH7D_hn9hpT<{w}0Bm)yqM|(oHciM%X^|TPmng z2BstGf{X{uhHZKyxZQ76-5A8q#kpSPTCwjEK_&{lMLNa9tCe#|IVch689AB`eicvm zTOIz!xuo9P^He&C{CU>Igd^i!8U8v$7TY3n9T`^BsK_M8+0w(}#XJG67i{Luw6iRg zvvqvB{Rd;o-tbeuQqbQHc$dFqQg_Ed>gRXsE9EF(TE<&P#s<+~_GTG;^X7Noyc>V5 z4%~Cgeuvh4>z2U)?k{!+7$jr*#?S!1cfU$aH02KdoZ}}V>cN|nR4JNt4gS>PG2K*4 zSalvUAa5AJj(;@(IT##!24K4ZY$pKD=Jt=@dw0QnD;O;+2>xHZSztJB%<~kfMLDIE zF`1#=J+O5GnMs=Z`pE||XD3^vp51b)H~a@n86|^sn`qLb#(P;dwn=qblkElDQ{o3& zOfRU`w3lZXu~6kZPfB>ty9Bkbs0H^H%Rarvp%crRjT#zJVV2xn-iF1UNBCgwcWP$J zjLv2Xk5+iLrM@+FhxcSX2PeKVI9VoOZa!1PQs<1fK3q!iv#kV82b91y6mNa0+BE^T zh-H{JTN&!9OgNXEH+qW&h6!ci_z~M4$85KHO=s+6*hpX|dR5Wj(fUhg)7yG&kEa(>|A4d_~reX ZH&}yh-!nT9!?h@L7<;!Y`^-Vo{C~shP~iXo literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.Desktop.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.Desktop.xml new file mode 100644 index 000000000..6fad7c97a --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.Desktop.xml @@ -0,0 +1,684 @@ + + + + Microsoft.Threading.Tasks.Extensions.Desktop + + + +

Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + + Provides asynchronous wrappers for .NET Framework operations. + + + Provides asynchronous wrappers for .NET Framework operations. + + + + Downloads the resource with the specified URI as a string, asynchronously. + The WebClient. + The URI from which to download data. + A Task that contains the downloaded string. + + + Downloads the resource with the specified URI as a string, asynchronously. + The WebClient. + The URI from which to download data. + A Task that contains the downloaded string. + + + Opens a readable stream for the data downloaded from a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a readable stream for the data downloaded from a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + The HTTP method that should be used to open the stream. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + The HTTP method that should be used to open the stream. + A Task that contains the opened stream. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The HTTP method that should be used to upload the data. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The HTTP method that should be used to upload the data. + The data to upload. + A Task containing the data in the response from the upload. + + + Converts a path to a Uri using the WebClient's logic. + Based on WebClient's private GetUri method. + + + Converts a path to a Uri using the WebClient's logic. + Based on WebClient's private GetUri method. + + + Downloads the resource with the specified URI as a byte array, asynchronously. + The WebClient. + The URI from which to download data. + A Task that contains the downloaded data. + + + Downloads the resource with the specified URI as a byte array, asynchronously. + The WebClient. + The URI from which to download data. + A Task that contains the downloaded data. + + + Downloads the resource with the specified URI to a local file, asynchronously. + The WebClient. + The URI from which to download data. + The name of the local file that is to receive the data. + A Task that contains the downloaded data. + + + Downloads the resource with the specified URI to a local file, asynchronously. + The WebClient. + The URI from which to download data. + The name of the local file that is to receive the data. + A Task that contains the downloaded data. + + + Uploads data to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The HTTP method that should be used to upload the data. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The HTTP method that should be used to upload the data. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads a file to the specified resource, asynchronously. + The WebClient. + The URI to which the file should be uploaded. + A path to the file to upload. + A Task containing the data in the response from the upload. + + + Uploads a file to the specified resource, asynchronously. + The WebClient. + The URI to which the file should be uploaded. + A path to the file to upload. + A Task containing the data in the response from the upload. + + + Uploads a file to the specified resource, asynchronously. + The WebClient. + The URI to which the file should be uploaded. + The HTTP method that should be used to upload the file. + A path to the file to upload. + A Task containing the data in the response from the upload. + + + Uploads a file to the specified resource, asynchronously. + The WebClient. + The URI to which the file should be uploaded. + The HTTP method that should be used to upload the file. + A path to the file to upload. + A Task containing the data in the response from the upload. + + + Causes an online announcement (Hello) message to be sent asynchronously with the specified endpoint discovery metadata and user-defined state. The specified is called when the operation completes. + Task instance. + The endpoint discovery metadata. + The source. + + + Causes an offline announcement (Bye) message to be sent asynchronously with the specified endpoint discovery metadata and user-defined state. The specified is called when the operation completes. + Task instance. + The endpoint discovery metadata. + The source. + + + Begins asynchronously retrieving an incoming request. + Task object that indicates the status of the asynchronous operation. + A Win32 function call failed. Check the exception's property to determine the cause of the exception. + This object has not been started or is currently stopped. + This object is closed. + The source. + + + Starts an asynchronous request for the client's X.509 v.3 certificate. + Task that indicates the status of the operation. + The source. + + + Called by clients to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. This method does not block. + Task object indicating the status of the asynchronous operation. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + The source. + + + Called by clients to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified credentials. This method does not block. + Task object indicating the status of the asynchronous operation. + The that is used to establish the identity of the client. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + is null.- or - is null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + The source. + + + Called by clients to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified credentials and channel binding. This method does not block. + Task object indicating the status of the asynchronous operation. + The that is used to establish the identity of the client. + The that is used for extended protection. + The Service Principal Name (SPN) that uniquely identifies the server to authenticate. + is null.- or - is null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the server. You cannot use the stream to retry authentication as the client. + This object has been closed. + The source. + + + Called by servers to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. This method does not block. + Task object indicating the status of the asynchronous operation. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Windows 95 and Windows 98 are not supported. + The source. + + + Called by servers to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified extended protection policy. This method does not block. + Task object indicating the status of the asynchronous operation. + The that is used for extended protection. + The and on the extended protection policy passed in the parameter are both null. + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + Windows 95 and Windows 98 are not supported. + This object has been closed. + The source. + + + Called by servers to begin an asynchronous operation to authenticate the client, and optionally the server, in a client-server connection. The authentication process uses the specified server credentials and authentication options. This method does not block. + Task object indicating the status of the asynchronous operation. + The that is used to establish the identity of the client. + One of the values, indicating the security services for the stream. + One of the values, indicating how the server can use the client's credentials to access resources. + is null. + must be , , or , + The authentication failed. You can use this object to retry the authentication. + The authentication failed. You can use this object to retry the authentication. + This object has been closed. + Authentication has already occurred.- or -This stream was used previously to attempt authentication as the client. You cannot use the stream to retry authentication as the server. + Windows 95 and Windows 98 are not supported. + The source. + + + Called by clients to begin an asynchronous operation to authenticate the server and optionally the client. + Task object that indicates the status of the asynchronous operation. + The name of the server that shares this . + is null. + The authentication failed and left this object in an unusable state. + Authentication has already occurred.-or-Server authentication using this was tried previously.-or- Authentication is already in progress. + This object has been closed. + The source. + + + Called by servers to begin an asynchronous operation to authenticate the client and optionally the server in a client-server connection. + Task object indicating the status of the asynchronous operation. + The X509Certificate used to authenticate the server. + is null. + The authentication failed and left this object in an unusable state. + Authentication has already occurred.-or-Client authentication using this was tried previously.-or- Authentication is already in progress. + This object has been closed. + The method is not supported on Windows 95, Windows 98, or Windows Millennium. + The source. + + + Starts an asynchronous request for a remote host connection. The host is specified by a host name and a port number. + Task that represents the asynchronous connection. + The name of the remote host. + The port number of the remote host. + is null. + The has been closed. + This method is valid for sockets in the or families. + The port number is not valid. + The is ing. + + The source. + + + Starts an asynchronous request for a remote host connection. The host is specified by an and a port number. + Task that represents the asynchronous connection. + The of the remote host. + The port number of the remote host. + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + The is not in the socket family. + The port number is not valid. + The length of is zero. + The is ing. + + The source. + + + Starts an asynchronous request for a remote host connection. The host is specified by an array and a port number. + Task that represents the asynchronous connections. + At least one , designating the remote host. + The port number of the remote host. + is null. + An error occurred when attempting to access the socket. See the Remarks section for more information. + The has been closed. + This method is valid for sockets that use or . + The port number is not valid. + The length of is zero. + The is ing. + + The source. + + + Starts an asynchronous operation to accept an incoming connection attempt. + Task that represents the asynchronous creation of the . + An error occurred while attempting to access the socket. See the Remarks section for more information. + The has been closed. + + The source. + + + Starts an asynchronous operation to accept an incoming connection attempt. + Task that represents the asynchronous creation of the . + An error occurred while attempting to access the socket. See the Remarks section for more information. + The has been closed. + + The source. + + + Sends a datagram to a destination asynchronously. The destination is specified by a . + Task object that represents the asynchronous send. + A array that contains the data to be sent. + The number of bytes to send. + The that represents the destination for the data. + The source. + + + Sends a datagram to a remote host asynchronously. The destination was specified previously by a call to . + Task object that represents the asynchronous send. + A array that contains the data to be sent. + The number of bytes to send. + The source. + + + Sends a datagram to a remote host asynchronously. The destination was specified previously by a call to . + Task object that represents the asynchronous send. + A array that contains the data to be sent. + The number of bytes to send. + The host name. + The host name. + The source. + + + Starts an asynchronous request to retrieve the stable unicast IP address table on the local computer. + Task that represents the asynchronous request. + This method is not implemented on the platform. This method uses the native NotifyStableUnicastIpAddressTable function that is supported on Windows Vista and later. + The call to the native NotifyStableUnicastIpAddressTable function failed. + The source. + + + Opens the connection asynchronously. + The source. + Task that represents the asynchronous request. + + + Opens the connection asynchronously. + The source. + The cancellation token. + Task that represents the asynchronous request. + + + Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this , given a callback procedure and state information. + Task that can be used to poll or wait for results, or both; this value is also needed when invoking , which returns the number of affected rows. + Any error that occurred while executing the command text. + The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . + 2 + The source. + + + Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this , given a callback procedure and state information. + Task that can be used to poll or wait for results, or both; this value is also needed when invoking , which returns the number of affected rows. + Any error that occurred while executing the command text. + The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . + 2 + The cancellation token. + The source. + + + Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this and returns results as an object, using a callback procedure. + Task that can be used to poll, wait for results, or both; this value is also needed when the is called, which returns the results of the command as XML. + Any error that occurred while executing the command text. + The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . + 2 + The source. + + + Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this and returns results as an object, using a callback procedure. + Task that can be used to poll, wait for results, or both; this value is also needed when the is called, which returns the results of the command as XML. + Any error that occurred while executing the command text. + The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . + 2 + The cancellation token. + The source. + + + Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this and retrieves one or more result sets from the server, given a callback procedure and state information. + Task that can be used to poll, wait for results, or both; this value is also needed when invoking , which returns a instance which can be used to retrieve the returned rows. + Any error that occurred while executing the command text. + The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . + 2 + The source. + + + Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this and retrieves one or more result sets from the server, given a callback procedure and state information. + Task that can be used to poll, wait for results, or both; this value is also needed when invoking , which returns a instance which can be used to retrieve the returned rows. + Any error that occurred while executing the command text. + The name/value pair "Asynchronous Processing=true" was not included within the connection string defining the connection for this . + 2 + The cancellation token. + The source. + + + Starts an asynchronous method call that returns a . + The metadata. + The source. + + + Starts an asynchronous method call that returns a using the specified address, callback, asynchronous state, and download mechanism. + The metadata obtained from the specified . + The address of the metadata. + The value to use when downloading the metadata. + The source. + + + Starts an asynchronous method call that returns a using the specified address, callback, and asynchronous state. + The metadata obtained from the specified . + The address of the metadata. + The source. + + + + Begins an asynchronous find operation with the specified criteria. + + The discovery client. + The criteria for finding services. + A Task that represents the asynchronous operation. + + + + Begins an asynchronous resolve operation with the specified criteria. + + The discovery client. + The criteria for matching a service endpoint. + A Task that represents the asynchronous operation. + + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message. + + The Ping. + An IPAddress that identifies the computer that is the destination for the ICMP echo message. + A task that represents the asynchronous operation. + + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message. + + The Ping. + + A String that identifies the computer that is the destination for the ICMP echo message. + The value specified for this parameter can be a host name or a string representation of an IP address. + + A task that represents the asynchronous operation. + + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message. + + The Ping. + An IPAddress that identifies the computer that is the destination for the ICMP echo message. + + An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) + to wait for the ICMP echo reply message. + + A task that represents the asynchronous operation. + + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message. + + The Ping. + + A String that identifies the computer that is the destination for the ICMP echo message. + The value specified for this parameter can be a host name or a string representation of an IP address. + + + An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) + to wait for the ICMP echo reply message. + + A task that represents the asynchronous operation. + + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message. + + The Ping. + An IPAddress that identifies the computer that is the destination for the ICMP echo message. + + An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) + to wait for the ICMP echo reply message. + + + A Byte array that contains data to be sent with the ICMP echo message and returned + in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + + A task that represents the asynchronous operation. + + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message. + + The Ping. + + A String that identifies the computer that is the destination for the ICMP echo message. + The value specified for this parameter can be a host name or a string representation of an IP address. + + + An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) + to wait for the ICMP echo reply message. + + + A Byte array that contains data to be sent with the ICMP echo message and returned + in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + + A task that represents the asynchronous operation. + + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message. + + The Ping. + An IPAddress that identifies the computer that is the destination for the ICMP echo message. + + An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) + to wait for the ICMP echo reply message. + + + A Byte array that contains data to be sent with the ICMP echo message and returned + in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + + A PingOptions object used to control fragmentation and Time-to-Live values for the ICMP echo message packet. + A task that represents the asynchronous operation. + + + + Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message. + + The Ping. + + A String that identifies the computer that is the destination for the ICMP echo message. + The value specified for this parameter can be a host name or a string representation of an IP address. + + + An Int32 value that specifies the maximum number of milliseconds (after sending the echo message) + to wait for the ICMP echo reply message. + + + A Byte array that contains data to be sent with the ICMP echo message and returned + in the ICMP echo reply message. The array cannot contain more than 65,500 bytes. + + A PingOptions object used to control fragmentation and Time-to-Live values for the ICMP echo message packet. + A task that represents the asynchronous operation. + + + The core implementation of SendTaskAsync. + The Ping. + A user-defined object stored in the resulting Task. + + A delegate that initiates the asynchronous send. + The provided TaskCompletionSource must be passed as the user-supplied state to the actual Ping.SendAsync method. + + + + + Sends an e-mail message asynchronously. + The client. + A String that contains the address information of the message sender. + A String that contains the address that the message is sent to. + A String that contains the subject line for the message. + A String that contains the message body. + A Task that represents the asynchronous send. + + + Sends an e-mail message asynchronously. + The client. + A MailMessage that contains the message to send. + A Task that represents the asynchronous send. + + + The core implementation of SendTaskAsync. + The client. + The user-supplied state. + + A delegate that initiates the asynchronous send. + The provided TaskCompletionSource must be passed as the user-supplied state to the actual SmtpClient.SendAsync method. + + + + + Provides asynchronous wrappers for the class. + + + Asynchronously returns the Internet Protocol (IP) addresses for the specified host. + The host name or IP address to resolve. + An array of type System.Net.IPAddress that holds the IP addresses for the host specified. + + + Asynchronously resolves an IP address to an System.Net.IPHostEntry instance. + The IP address to resolve. + An System.Net.IPHostEntry instance that contains address information about the host. + + + Asynchronously resolves an IP address to an System.Net.IPHostEntry instance. + The host name or IP address to resolve. + An System.Net.IPHostEntry instance that contains address information about the host. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..4d862e1730a34a6a5cfa39d04840bd039cf9de29 GIT binary patch literal 31520 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.xml new file mode 100644 index 000000000..af646a2d0 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.Extensions.xml @@ -0,0 +1,275 @@ + + + + Microsoft.Threading.Tasks.Extensions + + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + + Provides asynchronous wrappers for .NET Framework operations. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The cancellation token. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + The cancellation token. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads a maximum of count characters from the reader asynchronously and writes + the data to buffer, beginning at index. + + + When the operation completes, contains the specified character array with the + values between index and (index + count - 1) replaced by the characters read + from the current source. + + + The maximum number of characters to read. If the end of the stream is reached + before count of characters is read into buffer, the current method returns. + + The place in buffer at which to begin writing. + the source reader. + A Task that represents the asynchronous operation. + + + + Reads asynchronously a maximum of count characters from the current stream, and writes the + data to buffer, beginning at index. + + The source reader. + + When this method returns, this parameter contains the specified character + array with the values between index and (index + count -1) replaced by the + characters read from the current source. + + The position in buffer at which to begin writing. + The maximum number of characters to read. + A Task that represents the asynchronous operation. + + + + Reads a line of characters from the reader and returns the string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + + Reads all characters from the current position to the end of the TextReader + and returns them as one string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + Writes a string asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + Writes a line terminator asynchronously to a text stream. + The writer. + A Task representing the asynchronous write. + + + Writes a string followed by a line terminator asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char followed by a line terminator asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + + Clears all buffers for the current writer and causes any buffered data to + be written to the underlying device. + + The writer. + A Task representing the asynchronous flush. + + + Starts an asynchronous request for a web resource. + Task that represents the asynchronous request. + The stream is already in use by a previous call to . + + The source. + + + Starts an asynchronous request for a object to use to write data. + Task that represents the asynchronous request. + The property is GET and the application writes to the stream. + The stream is being used by a previous call to . + No write stream is available. + + The source. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..8438577c2042e5d6899425d500bf8074aae650a1 GIT binary patch literal 37104 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.xml new file mode 100644 index 000000000..5c22030d7 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/net40/Microsoft.Threading.Tasks.xml @@ -0,0 +1,630 @@ + + + + Microsoft.Threading.Tasks + + + + + Provides extension methods for threading-related types. + + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time in milliseconds for the source to be canceled. + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time for the source to be canceled. + + + Gets an awaiter used to await this . + The task to await. + An awaiter instance. + + + Gets an awaiter used to await this . + Specifies the type of data returned by the task. + The task to await. + An awaiter instance. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Event handler for progress reports. + Specifies the type of data for the progress report. + The sender of the report. + The reported value. + + + + Provides an IProgress{T} that invokes callbacks for each reported progress value. + + Specifies the type of the progress report value. + + Any handler provided to the constructor or event handlers registered with + the event are invoked through a + instance captured + when the instance is constructed. If there is no current SynchronizationContext + at the time of construction, the callbacks will be invoked on the ThreadPool. + + + + The synchronization context captured upon construction. This will never be null. + + + The handler specified to the constructor. This may be null. + + + A cached delegate used to post invocation to the synchronization context. + + + Initializes the . + + + Initializes the with the specified callback. + + A handler to invoke for each reported progress value. This handler will be invoked + in addition to any delegates registered with the event. + + The is null (Nothing in Visual Basic). + + + Reports a progress change. + The value of the updated progress. + + + Reports a progress change. + The value of the updated progress. + + + Invokes the action and event callbacks. + The progress value. + + + Raised for each reported progress value. + + Handlers registered with this event will be invoked on the + captured when the instance was constructed. + + + + Holds static values for . + This avoids one static instance per type T. + + + A default synchronization context that targets the ThreadPool. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The to await. + + true to attempt to marshal the continuation back to the original context captured + when BeginAwait is called; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The underlying awaitable on whose logic this awaitable relies. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The default value to use for continueOnCapturedContext. + + + Error message for GetAwaiter. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + + Fast checks for the end of an await operation to determine whether more needs to be done + prior to completing the await. + + The awaited task. + + + Handles validations on tasks that aren't successfully completed. + The awaited task. + + + Throws an exception to handle a task that completed in a state other than RanToCompletion. + + + Schedules the continuation onto the associated with this . + The awaited task. + The action to invoke when the await operation completes. + Whether to capture and marshal back to the current context. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Invokes the delegate in a try/catch that will propagate the exception asynchronously on the ThreadPool. + + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Whether the current thread is appropriate for inlining the await continuation. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable context for switching into a target environment. + This type is intended for compiler use only. + + + Gets an awaiter for this . + An awaiter for this awaitable. + This method is intended for compiler user rather than use directly in code. + + + Provides an awaiter that switches into a target environment. + This type is intended for compiler use only. + + + A completed task. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Ends the await operation. + + + Gets whether a yield is not required. + This property is intended for compiler user rather than use directly in code. + + + Provides methods for creating and manipulating tasks. + + + Creates a task that runs the specified action. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified action. + The action to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the function. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + An already completed task. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + + A callback invoked when all of the tasks complete successfully in the RanToCompletion state. + This callback is responsible for storing the results into the TaskCompletionSource. + + A Task that represents the completion of all of the provided tasks. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates an already completed from the specified result. + The result from which to create the completed task. + The completed task. + + + Creates an awaitable that asynchronously yields back to the current context when awaited. + + A context that, when awaited, will asynchronously transition back into the current context. + If SynchronizationContext.Current is non-null, that is treated as the current context. + Otherwise, TaskScheduler.Current is treated as the current context. + + + + Adds the target exception to the list, initializing the list if it's null. + The list to which to add the exception and initialize if the list is null. + The exception to add, and unwrap if it's an aggregate. + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.Extensions.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..4d862e1730a34a6a5cfa39d04840bd039cf9de29 GIT binary patch literal 31520 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.Extensions.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.Extensions.xml new file mode 100644 index 000000000..af646a2d0 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.Extensions.xml @@ -0,0 +1,275 @@ + + + + Microsoft.Threading.Tasks.Extensions + + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + + Provides asynchronous wrappers for .NET Framework operations. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The cancellation token. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + The cancellation token. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads a maximum of count characters from the reader asynchronously and writes + the data to buffer, beginning at index. + + + When the operation completes, contains the specified character array with the + values between index and (index + count - 1) replaced by the characters read + from the current source. + + + The maximum number of characters to read. If the end of the stream is reached + before count of characters is read into buffer, the current method returns. + + The place in buffer at which to begin writing. + the source reader. + A Task that represents the asynchronous operation. + + + + Reads asynchronously a maximum of count characters from the current stream, and writes the + data to buffer, beginning at index. + + The source reader. + + When this method returns, this parameter contains the specified character + array with the values between index and (index + count -1) replaced by the + characters read from the current source. + + The position in buffer at which to begin writing. + The maximum number of characters to read. + A Task that represents the asynchronous operation. + + + + Reads a line of characters from the reader and returns the string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + + Reads all characters from the current position to the end of the TextReader + and returns them as one string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + Writes a string asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + Writes a line terminator asynchronously to a text stream. + The writer. + A Task representing the asynchronous write. + + + Writes a string followed by a line terminator asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char followed by a line terminator asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + + Clears all buffers for the current writer and causes any buffered data to + be written to the underlying device. + + The writer. + A Task representing the asynchronous flush. + + + Starts an asynchronous request for a web resource. + Task that represents the asynchronous request. + The stream is already in use by a previous call to . + + The source. + + + Starts an asynchronous request for a object to use to write data. + Task that represents the asynchronous request. + The property is GET and the application writes to the stream. + The stream is being used by a previous call to . + No write stream is available. + + The source. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..8438577c2042e5d6899425d500bf8074aae650a1 GIT binary patch literal 37104 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.xml new file mode 100644 index 000000000..5c22030d7 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net40+sl4+win8+wp71+wpa81/Microsoft.Threading.Tasks.xml @@ -0,0 +1,630 @@ + + + + Microsoft.Threading.Tasks + + + + + Provides extension methods for threading-related types. + + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time in milliseconds for the source to be canceled. + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time for the source to be canceled. + + + Gets an awaiter used to await this . + The task to await. + An awaiter instance. + + + Gets an awaiter used to await this . + Specifies the type of data returned by the task. + The task to await. + An awaiter instance. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Event handler for progress reports. + Specifies the type of data for the progress report. + The sender of the report. + The reported value. + + + + Provides an IProgress{T} that invokes callbacks for each reported progress value. + + Specifies the type of the progress report value. + + Any handler provided to the constructor or event handlers registered with + the event are invoked through a + instance captured + when the instance is constructed. If there is no current SynchronizationContext + at the time of construction, the callbacks will be invoked on the ThreadPool. + + + + The synchronization context captured upon construction. This will never be null. + + + The handler specified to the constructor. This may be null. + + + A cached delegate used to post invocation to the synchronization context. + + + Initializes the . + + + Initializes the with the specified callback. + + A handler to invoke for each reported progress value. This handler will be invoked + in addition to any delegates registered with the event. + + The is null (Nothing in Visual Basic). + + + Reports a progress change. + The value of the updated progress. + + + Reports a progress change. + The value of the updated progress. + + + Invokes the action and event callbacks. + The progress value. + + + Raised for each reported progress value. + + Handlers registered with this event will be invoked on the + captured when the instance was constructed. + + + + Holds static values for . + This avoids one static instance per type T. + + + A default synchronization context that targets the ThreadPool. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The to await. + + true to attempt to marshal the continuation back to the original context captured + when BeginAwait is called; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The underlying awaitable on whose logic this awaitable relies. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The default value to use for continueOnCapturedContext. + + + Error message for GetAwaiter. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + + Fast checks for the end of an await operation to determine whether more needs to be done + prior to completing the await. + + The awaited task. + + + Handles validations on tasks that aren't successfully completed. + The awaited task. + + + Throws an exception to handle a task that completed in a state other than RanToCompletion. + + + Schedules the continuation onto the associated with this . + The awaited task. + The action to invoke when the await operation completes. + Whether to capture and marshal back to the current context. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Invokes the delegate in a try/catch that will propagate the exception asynchronously on the ThreadPool. + + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Whether the current thread is appropriate for inlining the await continuation. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable context for switching into a target environment. + This type is intended for compiler use only. + + + Gets an awaiter for this . + An awaiter for this awaitable. + This method is intended for compiler user rather than use directly in code. + + + Provides an awaiter that switches into a target environment. + This type is intended for compiler use only. + + + A completed task. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Ends the await operation. + + + Gets whether a yield is not required. + This property is intended for compiler user rather than use directly in code. + + + Provides methods for creating and manipulating tasks. + + + Creates a task that runs the specified action. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified action. + The action to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the function. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + An already completed task. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + + A callback invoked when all of the tasks complete successfully in the RanToCompletion state. + This callback is responsible for storing the results into the TaskCompletionSource. + + A Task that represents the completion of all of the provided tasks. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates an already completed from the specified result. + The result from which to create the completed task. + The completed task. + + + Creates an awaitable that asynchronously yields back to the current context when awaited. + + A context that, when awaited, will asynchronously transition back into the current context. + If SynchronizationContext.Current is non-null, that is treated as the current context. + Otherwise, TaskScheduler.Current is treated as the current context. + + + + Adds the target exception to the list, initializing the list if it's null. + The list to which to add the exception and initialize if the list is null. + The exception to add, and unwrap if it's an aggregate. + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.Extensions.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..4d862e1730a34a6a5cfa39d04840bd039cf9de29 GIT binary patch literal 31520 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.Extensions.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.Extensions.xml new file mode 100644 index 000000000..af646a2d0 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.Extensions.xml @@ -0,0 +1,275 @@ + + + + Microsoft.Threading.Tasks.Extensions + + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + + Provides asynchronous wrappers for .NET Framework operations. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The cancellation token. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + The cancellation token. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads a maximum of count characters from the reader asynchronously and writes + the data to buffer, beginning at index. + + + When the operation completes, contains the specified character array with the + values between index and (index + count - 1) replaced by the characters read + from the current source. + + + The maximum number of characters to read. If the end of the stream is reached + before count of characters is read into buffer, the current method returns. + + The place in buffer at which to begin writing. + the source reader. + A Task that represents the asynchronous operation. + + + + Reads asynchronously a maximum of count characters from the current stream, and writes the + data to buffer, beginning at index. + + The source reader. + + When this method returns, this parameter contains the specified character + array with the values between index and (index + count -1) replaced by the + characters read from the current source. + + The position in buffer at which to begin writing. + The maximum number of characters to read. + A Task that represents the asynchronous operation. + + + + Reads a line of characters from the reader and returns the string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + + Reads all characters from the current position to the end of the TextReader + and returns them as one string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + Writes a string asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + Writes a line terminator asynchronously to a text stream. + The writer. + A Task representing the asynchronous write. + + + Writes a string followed by a line terminator asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char followed by a line terminator asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + + Clears all buffers for the current writer and causes any buffered data to + be written to the underlying device. + + The writer. + A Task representing the asynchronous flush. + + + Starts an asynchronous request for a web resource. + Task that represents the asynchronous request. + The stream is already in use by a previous call to . + + The source. + + + Starts an asynchronous request for a object to use to write data. + Task that represents the asynchronous request. + The property is GET and the application writes to the stream. + The stream is being used by a previous call to . + No write stream is available. + + The source. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..8438577c2042e5d6899425d500bf8074aae650a1 GIT binary patch literal 37104 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.xml new file mode 100644 index 000000000..5c22030d7 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wp8+wpa81/Microsoft.Threading.Tasks.xml @@ -0,0 +1,630 @@ + + + + Microsoft.Threading.Tasks + + + + + Provides extension methods for threading-related types. + + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time in milliseconds for the source to be canceled. + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time for the source to be canceled. + + + Gets an awaiter used to await this . + The task to await. + An awaiter instance. + + + Gets an awaiter used to await this . + Specifies the type of data returned by the task. + The task to await. + An awaiter instance. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Event handler for progress reports. + Specifies the type of data for the progress report. + The sender of the report. + The reported value. + + + + Provides an IProgress{T} that invokes callbacks for each reported progress value. + + Specifies the type of the progress report value. + + Any handler provided to the constructor or event handlers registered with + the event are invoked through a + instance captured + when the instance is constructed. If there is no current SynchronizationContext + at the time of construction, the callbacks will be invoked on the ThreadPool. + + + + The synchronization context captured upon construction. This will never be null. + + + The handler specified to the constructor. This may be null. + + + A cached delegate used to post invocation to the synchronization context. + + + Initializes the . + + + Initializes the with the specified callback. + + A handler to invoke for each reported progress value. This handler will be invoked + in addition to any delegates registered with the event. + + The is null (Nothing in Visual Basic). + + + Reports a progress change. + The value of the updated progress. + + + Reports a progress change. + The value of the updated progress. + + + Invokes the action and event callbacks. + The progress value. + + + Raised for each reported progress value. + + Handlers registered with this event will be invoked on the + captured when the instance was constructed. + + + + Holds static values for . + This avoids one static instance per type T. + + + A default synchronization context that targets the ThreadPool. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The to await. + + true to attempt to marshal the continuation back to the original context captured + when BeginAwait is called; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The underlying awaitable on whose logic this awaitable relies. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The default value to use for continueOnCapturedContext. + + + Error message for GetAwaiter. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + + Fast checks for the end of an await operation to determine whether more needs to be done + prior to completing the await. + + The awaited task. + + + Handles validations on tasks that aren't successfully completed. + The awaited task. + + + Throws an exception to handle a task that completed in a state other than RanToCompletion. + + + Schedules the continuation onto the associated with this . + The awaited task. + The action to invoke when the await operation completes. + Whether to capture and marshal back to the current context. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Invokes the delegate in a try/catch that will propagate the exception asynchronously on the ThreadPool. + + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Whether the current thread is appropriate for inlining the await continuation. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable context for switching into a target environment. + This type is intended for compiler use only. + + + Gets an awaiter for this . + An awaiter for this awaitable. + This method is intended for compiler user rather than use directly in code. + + + Provides an awaiter that switches into a target environment. + This type is intended for compiler use only. + + + A completed task. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Ends the await operation. + + + Gets whether a yield is not required. + This property is intended for compiler user rather than use directly in code. + + + Provides methods for creating and manipulating tasks. + + + Creates a task that runs the specified action. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified action. + The action to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the function. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + An already completed task. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + + A callback invoked when all of the tasks complete successfully in the RanToCompletion state. + This callback is responsible for storing the results into the TaskCompletionSource. + + A Task that represents the completion of all of the provided tasks. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates an already completed from the specified result. + The result from which to create the completed task. + The completed task. + + + Creates an awaitable that asynchronously yields back to the current context when awaited. + + A context that, when awaited, will asynchronously transition back into the current context. + If SynchronizationContext.Current is non-null, that is treated as the current context. + Otherwise, TaskScheduler.Current is treated as the current context. + + + + Adds the target exception to the list, initializing the list if it's null. + The list to which to add the exception and initialize if the list is null. + The exception to add, and unwrap if it's an aggregate. + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.Extensions.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..4d862e1730a34a6a5cfa39d04840bd039cf9de29 GIT binary patch literal 31520 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.Extensions.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.Extensions.xml new file mode 100644 index 000000000..af646a2d0 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.Extensions.xml @@ -0,0 +1,275 @@ + + + + Microsoft.Threading.Tasks.Extensions + + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + + Provides asynchronous wrappers for .NET Framework operations. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The cancellation token. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + The cancellation token. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads a maximum of count characters from the reader asynchronously and writes + the data to buffer, beginning at index. + + + When the operation completes, contains the specified character array with the + values between index and (index + count - 1) replaced by the characters read + from the current source. + + + The maximum number of characters to read. If the end of the stream is reached + before count of characters is read into buffer, the current method returns. + + The place in buffer at which to begin writing. + the source reader. + A Task that represents the asynchronous operation. + + + + Reads asynchronously a maximum of count characters from the current stream, and writes the + data to buffer, beginning at index. + + The source reader. + + When this method returns, this parameter contains the specified character + array with the values between index and (index + count -1) replaced by the + characters read from the current source. + + The position in buffer at which to begin writing. + The maximum number of characters to read. + A Task that represents the asynchronous operation. + + + + Reads a line of characters from the reader and returns the string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + + Reads all characters from the current position to the end of the TextReader + and returns them as one string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + Writes a string asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + Writes a line terminator asynchronously to a text stream. + The writer. + A Task representing the asynchronous write. + + + Writes a string followed by a line terminator asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char followed by a line terminator asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + + Clears all buffers for the current writer and causes any buffered data to + be written to the underlying device. + + The writer. + A Task representing the asynchronous flush. + + + Starts an asynchronous request for a web resource. + Task that represents the asynchronous request. + The stream is already in use by a previous call to . + + The source. + + + Starts an asynchronous request for a object to use to write data. + Task that represents the asynchronous request. + The property is GET and the application writes to the stream. + The stream is being used by a previous call to . + No write stream is available. + + The source. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..8438577c2042e5d6899425d500bf8074aae650a1 GIT binary patch literal 37104 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.xml new file mode 100644 index 000000000..5c22030d7 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/portable-net45+win8+wpa81/Microsoft.Threading.Tasks.xml @@ -0,0 +1,630 @@ + + + + Microsoft.Threading.Tasks + + + + + Provides extension methods for threading-related types. + + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time in milliseconds for the source to be canceled. + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time for the source to be canceled. + + + Gets an awaiter used to await this . + The task to await. + An awaiter instance. + + + Gets an awaiter used to await this . + Specifies the type of data returned by the task. + The task to await. + An awaiter instance. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Event handler for progress reports. + Specifies the type of data for the progress report. + The sender of the report. + The reported value. + + + + Provides an IProgress{T} that invokes callbacks for each reported progress value. + + Specifies the type of the progress report value. + + Any handler provided to the constructor or event handlers registered with + the event are invoked through a + instance captured + when the instance is constructed. If there is no current SynchronizationContext + at the time of construction, the callbacks will be invoked on the ThreadPool. + + + + The synchronization context captured upon construction. This will never be null. + + + The handler specified to the constructor. This may be null. + + + A cached delegate used to post invocation to the synchronization context. + + + Initializes the . + + + Initializes the with the specified callback. + + A handler to invoke for each reported progress value. This handler will be invoked + in addition to any delegates registered with the event. + + The is null (Nothing in Visual Basic). + + + Reports a progress change. + The value of the updated progress. + + + Reports a progress change. + The value of the updated progress. + + + Invokes the action and event callbacks. + The progress value. + + + Raised for each reported progress value. + + Handlers registered with this event will be invoked on the + captured when the instance was constructed. + + + + Holds static values for . + This avoids one static instance per type T. + + + A default synchronization context that targets the ThreadPool. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The to await. + + true to attempt to marshal the continuation back to the original context captured + when BeginAwait is called; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The underlying awaitable on whose logic this awaitable relies. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The default value to use for continueOnCapturedContext. + + + Error message for GetAwaiter. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + + Fast checks for the end of an await operation to determine whether more needs to be done + prior to completing the await. + + The awaited task. + + + Handles validations on tasks that aren't successfully completed. + The awaited task. + + + Throws an exception to handle a task that completed in a state other than RanToCompletion. + + + Schedules the continuation onto the associated with this . + The awaited task. + The action to invoke when the await operation completes. + Whether to capture and marshal back to the current context. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Invokes the delegate in a try/catch that will propagate the exception asynchronously on the ThreadPool. + + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Whether the current thread is appropriate for inlining the await continuation. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable context for switching into a target environment. + This type is intended for compiler use only. + + + Gets an awaiter for this . + An awaiter for this awaitable. + This method is intended for compiler user rather than use directly in code. + + + Provides an awaiter that switches into a target environment. + This type is intended for compiler use only. + + + A completed task. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Ends the await operation. + + + Gets whether a yield is not required. + This property is intended for compiler user rather than use directly in code. + + + Provides methods for creating and manipulating tasks. + + + Creates a task that runs the specified action. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified action. + The action to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the function. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + An already completed task. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + + A callback invoked when all of the tasks complete successfully in the RanToCompletion state. + This callback is responsible for storing the results into the TaskCompletionSource. + + A Task that represents the completion of all of the provided tasks. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates an already completed from the specified result. + The result from which to create the completed task. + The completed task. + + + Creates an awaitable that asynchronously yields back to the current context when awaited. + + A context that, when awaited, will asynchronously transition back into the current context. + If SynchronizationContext.Current is non-null, that is treated as the current context. + Otherwise, TaskScheduler.Current is treated as the current context. + + + + Adds the target exception to the list, initializing the list if it's null. + The list to which to add the exception and initialize if the list is null. + The exception to add, and unwrap if it's an aggregate. + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.Phone.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.Phone.dll new file mode 100644 index 0000000000000000000000000000000000000000..b9812870f70f534d6785d6a0735e931d0509d033 GIT binary patch literal 28984 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 Qt0R510!1UJpc$e60~XE>xBvhE literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.Phone.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.Phone.xml new file mode 100644 index 000000000..515d7031d --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.Phone.xml @@ -0,0 +1,141 @@ + + + + Microsoft.Threading.Tasks.Extensions.Phone + + + + + Provides asynchronous wrappers for .NET Framework operations. + + + Provides asynchronous wrappers for .NET Framework operations. + + + + Downloads the resource with the specified URI as a string, asynchronously. + The WebClient. + The URI from which to download data. + A Task that contains the downloaded string. + + + Downloads the resource with the specified URI as a string, asynchronously. + The WebClient. + The URI from which to download data. + A Task that contains the downloaded string. + + + Opens a readable stream for the data downloaded from a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a readable stream for the data downloaded from a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + The HTTP method that should be used to open the stream. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + The HTTP method that should be used to open the stream. + A Task that contains the opened stream. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The HTTP method that should be used to upload the data. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The HTTP method that should be used to upload the data. + The data to upload. + A Task containing the data in the response from the upload. + + + Converts a path to a Uri using the WebClient's logic. + Based on WebClient's private GetUri method. + + + Converts a path to a Uri using the WebClient's logic. + Based on WebClient's private GetUri method. + + + Asynchronously invokes an Action on the Dispatcher. + The Dispatcher. + The action to invoke. + A Task that represents the execution of the action. + + + Asynchronously invokes an Action on the Dispatcher. + The Dispatcher. + The function to invoke. + A Task that represents the execution of the function. + + + Used with Task(of void) + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..4d862e1730a34a6a5cfa39d04840bd039cf9de29 GIT binary patch literal 31520 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.xml new file mode 100644 index 000000000..af646a2d0 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.Extensions.xml @@ -0,0 +1,275 @@ + + + + Microsoft.Threading.Tasks.Extensions + + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + + Provides asynchronous wrappers for .NET Framework operations. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The cancellation token. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + The cancellation token. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads a maximum of count characters from the reader asynchronously and writes + the data to buffer, beginning at index. + + + When the operation completes, contains the specified character array with the + values between index and (index + count - 1) replaced by the characters read + from the current source. + + + The maximum number of characters to read. If the end of the stream is reached + before count of characters is read into buffer, the current method returns. + + The place in buffer at which to begin writing. + the source reader. + A Task that represents the asynchronous operation. + + + + Reads asynchronously a maximum of count characters from the current stream, and writes the + data to buffer, beginning at index. + + The source reader. + + When this method returns, this parameter contains the specified character + array with the values between index and (index + count -1) replaced by the + characters read from the current source. + + The position in buffer at which to begin writing. + The maximum number of characters to read. + A Task that represents the asynchronous operation. + + + + Reads a line of characters from the reader and returns the string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + + Reads all characters from the current position to the end of the TextReader + and returns them as one string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + Writes a string asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + Writes a line terminator asynchronously to a text stream. + The writer. + A Task representing the asynchronous write. + + + Writes a string followed by a line terminator asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char followed by a line terminator asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + + Clears all buffers for the current writer and causes any buffered data to + be written to the underlying device. + + The writer. + A Task representing the asynchronous flush. + + + Starts an asynchronous request for a web resource. + Task that represents the asynchronous request. + The stream is already in use by a previous call to . + + The source. + + + Starts an asynchronous request for a object to use to write data. + Task that represents the asynchronous request. + The property is GET and the application writes to the stream. + The stream is being used by a previous call to . + No write stream is available. + + The source. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..8438577c2042e5d6899425d500bf8074aae650a1 GIT binary patch literal 37104 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.xml new file mode 100644 index 000000000..5c22030d7 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4-windowsphone71/Microsoft.Threading.Tasks.xml @@ -0,0 +1,630 @@ + + + + Microsoft.Threading.Tasks + + + + + Provides extension methods for threading-related types. + + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time in milliseconds for the source to be canceled. + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time for the source to be canceled. + + + Gets an awaiter used to await this . + The task to await. + An awaiter instance. + + + Gets an awaiter used to await this . + Specifies the type of data returned by the task. + The task to await. + An awaiter instance. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Event handler for progress reports. + Specifies the type of data for the progress report. + The sender of the report. + The reported value. + + + + Provides an IProgress{T} that invokes callbacks for each reported progress value. + + Specifies the type of the progress report value. + + Any handler provided to the constructor or event handlers registered with + the event are invoked through a + instance captured + when the instance is constructed. If there is no current SynchronizationContext + at the time of construction, the callbacks will be invoked on the ThreadPool. + + + + The synchronization context captured upon construction. This will never be null. + + + The handler specified to the constructor. This may be null. + + + A cached delegate used to post invocation to the synchronization context. + + + Initializes the . + + + Initializes the with the specified callback. + + A handler to invoke for each reported progress value. This handler will be invoked + in addition to any delegates registered with the event. + + The is null (Nothing in Visual Basic). + + + Reports a progress change. + The value of the updated progress. + + + Reports a progress change. + The value of the updated progress. + + + Invokes the action and event callbacks. + The progress value. + + + Raised for each reported progress value. + + Handlers registered with this event will be invoked on the + captured when the instance was constructed. + + + + Holds static values for . + This avoids one static instance per type T. + + + A default synchronization context that targets the ThreadPool. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The to await. + + true to attempt to marshal the continuation back to the original context captured + when BeginAwait is called; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The underlying awaitable on whose logic this awaitable relies. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The default value to use for continueOnCapturedContext. + + + Error message for GetAwaiter. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + + Fast checks for the end of an await operation to determine whether more needs to be done + prior to completing the await. + + The awaited task. + + + Handles validations on tasks that aren't successfully completed. + The awaited task. + + + Throws an exception to handle a task that completed in a state other than RanToCompletion. + + + Schedules the continuation onto the associated with this . + The awaited task. + The action to invoke when the await operation completes. + Whether to capture and marshal back to the current context. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Invokes the delegate in a try/catch that will propagate the exception asynchronously on the ThreadPool. + + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Whether the current thread is appropriate for inlining the await continuation. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable context for switching into a target environment. + This type is intended for compiler use only. + + + Gets an awaiter for this . + An awaiter for this awaitable. + This method is intended for compiler user rather than use directly in code. + + + Provides an awaiter that switches into a target environment. + This type is intended for compiler use only. + + + A completed task. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Ends the await operation. + + + Gets whether a yield is not required. + This property is intended for compiler user rather than use directly in code. + + + Provides methods for creating and manipulating tasks. + + + Creates a task that runs the specified action. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified action. + The action to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the function. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + An already completed task. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + + A callback invoked when all of the tasks complete successfully in the RanToCompletion state. + This callback is responsible for storing the results into the TaskCompletionSource. + + A Task that represents the completion of all of the provided tasks. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates an already completed from the specified result. + The result from which to create the completed task. + The completed task. + + + Creates an awaitable that asynchronously yields back to the current context when awaited. + + A context that, when awaited, will asynchronously transition back into the current context. + If SynchronizationContext.Current is non-null, that is treated as the current context. + Otherwise, TaskScheduler.Current is treated as the current context. + + + + Adds the target exception to the list, initializing the list if it's null. + The list to which to add the exception and initialize if the list is null. + The exception to add, and unwrap if it's an aggregate. + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.Silverlight.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.Silverlight.dll new file mode 100644 index 0000000000000000000000000000000000000000..689120e11641b3051039e0f7ad7328f6a9015375 GIT binary patch literal 29008 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.Silverlight.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.Silverlight.xml new file mode 100644 index 000000000..950e092f0 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.Silverlight.xml @@ -0,0 +1,141 @@ + + + + Microsoft.Threading.Tasks.Extensions.Silverlight + + + + + Provides asynchronous wrappers for .NET Framework operations. + + + Provides asynchronous wrappers for .NET Framework operations. + + + + Downloads the resource with the specified URI as a string, asynchronously. + The WebClient. + The URI from which to download data. + A Task that contains the downloaded string. + + + Downloads the resource with the specified URI as a string, asynchronously. + The WebClient. + The URI from which to download data. + A Task that contains the downloaded string. + + + Opens a readable stream for the data downloaded from a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a readable stream for the data downloaded from a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + The HTTP method that should be used to open the stream. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + The HTTP method that should be used to open the stream. + A Task that contains the opened stream. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The HTTP method that should be used to upload the data. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The HTTP method that should be used to upload the data. + The data to upload. + A Task containing the data in the response from the upload. + + + Converts a path to a Uri using the WebClient's logic. + Based on WebClient's private GetUri method. + + + Converts a path to a Uri using the WebClient's logic. + Based on WebClient's private GetUri method. + + + Asynchronously invokes an Action on the Dispatcher. + The Dispatcher. + The action to invoke. + A Task that represents the execution of the action. + + + Asynchronously invokes an Action on the Dispatcher. + The Dispatcher. + The function to invoke. + A Task that represents the execution of the function. + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + Used with Task(of void) + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..4d862e1730a34a6a5cfa39d04840bd039cf9de29 GIT binary patch literal 31520 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.xml new file mode 100644 index 000000000..af646a2d0 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.Extensions.xml @@ -0,0 +1,275 @@ + + + + Microsoft.Threading.Tasks.Extensions + + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + + Provides asynchronous wrappers for .NET Framework operations. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The cancellation token. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + The cancellation token. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads a maximum of count characters from the reader asynchronously and writes + the data to buffer, beginning at index. + + + When the operation completes, contains the specified character array with the + values between index and (index + count - 1) replaced by the characters read + from the current source. + + + The maximum number of characters to read. If the end of the stream is reached + before count of characters is read into buffer, the current method returns. + + The place in buffer at which to begin writing. + the source reader. + A Task that represents the asynchronous operation. + + + + Reads asynchronously a maximum of count characters from the current stream, and writes the + data to buffer, beginning at index. + + The source reader. + + When this method returns, this parameter contains the specified character + array with the values between index and (index + count -1) replaced by the + characters read from the current source. + + The position in buffer at which to begin writing. + The maximum number of characters to read. + A Task that represents the asynchronous operation. + + + + Reads a line of characters from the reader and returns the string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + + Reads all characters from the current position to the end of the TextReader + and returns them as one string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + Writes a string asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + Writes a line terminator asynchronously to a text stream. + The writer. + A Task representing the asynchronous write. + + + Writes a string followed by a line terminator asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char followed by a line terminator asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + + Clears all buffers for the current writer and causes any buffered data to + be written to the underlying device. + + The writer. + A Task representing the asynchronous flush. + + + Starts an asynchronous request for a web resource. + Task that represents the asynchronous request. + The stream is already in use by a previous call to . + + The source. + + + Starts an asynchronous request for a object to use to write data. + Task that represents the asynchronous request. + The property is GET and the application writes to the stream. + The stream is being used by a previous call to . + No write stream is available. + + The source. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..8438577c2042e5d6899425d500bf8074aae650a1 GIT binary patch literal 37104 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.xml new file mode 100644 index 000000000..5c22030d7 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/sl4/Microsoft.Threading.Tasks.xml @@ -0,0 +1,630 @@ + + + + Microsoft.Threading.Tasks + + + + + Provides extension methods for threading-related types. + + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time in milliseconds for the source to be canceled. + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time for the source to be canceled. + + + Gets an awaiter used to await this . + The task to await. + An awaiter instance. + + + Gets an awaiter used to await this . + Specifies the type of data returned by the task. + The task to await. + An awaiter instance. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Event handler for progress reports. + Specifies the type of data for the progress report. + The sender of the report. + The reported value. + + + + Provides an IProgress{T} that invokes callbacks for each reported progress value. + + Specifies the type of the progress report value. + + Any handler provided to the constructor or event handlers registered with + the event are invoked through a + instance captured + when the instance is constructed. If there is no current SynchronizationContext + at the time of construction, the callbacks will be invoked on the ThreadPool. + + + + The synchronization context captured upon construction. This will never be null. + + + The handler specified to the constructor. This may be null. + + + A cached delegate used to post invocation to the synchronization context. + + + Initializes the . + + + Initializes the with the specified callback. + + A handler to invoke for each reported progress value. This handler will be invoked + in addition to any delegates registered with the event. + + The is null (Nothing in Visual Basic). + + + Reports a progress change. + The value of the updated progress. + + + Reports a progress change. + The value of the updated progress. + + + Invokes the action and event callbacks. + The progress value. + + + Raised for each reported progress value. + + Handlers registered with this event will be invoked on the + captured when the instance was constructed. + + + + Holds static values for . + This avoids one static instance per type T. + + + A default synchronization context that targets the ThreadPool. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The to await. + + true to attempt to marshal the continuation back to the original context captured + when BeginAwait is called; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The underlying awaitable on whose logic this awaitable relies. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The default value to use for continueOnCapturedContext. + + + Error message for GetAwaiter. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + + Fast checks for the end of an await operation to determine whether more needs to be done + prior to completing the await. + + The awaited task. + + + Handles validations on tasks that aren't successfully completed. + The awaited task. + + + Throws an exception to handle a task that completed in a state other than RanToCompletion. + + + Schedules the continuation onto the associated with this . + The awaited task. + The action to invoke when the await operation completes. + Whether to capture and marshal back to the current context. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Invokes the delegate in a try/catch that will propagate the exception asynchronously on the ThreadPool. + + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Whether the current thread is appropriate for inlining the await continuation. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable context for switching into a target environment. + This type is intended for compiler use only. + + + Gets an awaiter for this . + An awaiter for this awaitable. + This method is intended for compiler user rather than use directly in code. + + + Provides an awaiter that switches into a target environment. + This type is intended for compiler use only. + + + A completed task. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Ends the await operation. + + + Gets whether a yield is not required. + This property is intended for compiler user rather than use directly in code. + + + Provides methods for creating and manipulating tasks. + + + Creates a task that runs the specified action. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified action. + The action to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the function. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + An already completed task. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + + A callback invoked when all of the tasks complete successfully in the RanToCompletion state. + This callback is responsible for storing the results into the TaskCompletionSource. + + A Task that represents the completion of all of the provided tasks. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates an already completed from the specified result. + The result from which to create the completed task. + The completed task. + + + Creates an awaitable that asynchronously yields back to the current context when awaited. + + A context that, when awaited, will asynchronously transition back into the current context. + If SynchronizationContext.Current is non-null, that is treated as the current context. + Otherwise, TaskScheduler.Current is treated as the current context. + + + + Adds the target exception to the list, initializing the list if it's null. + The list to which to add the exception and initialize if the list is null. + The exception to add, and unwrap if it's an aggregate. + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.Extensions.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..4d862e1730a34a6a5cfa39d04840bd039cf9de29 GIT binary patch literal 31520 zcmeHw2Ut@})9{`&Ak+{ArG}<-PC{2ex*}CTQ9&UX6l4GLITK9mFF((0Z$%$li-Vx4wa_K z^~M=kf9g{S5b_u6640)sk(d2>#JXagaUY;g@NMz&MaaJeN+nBizrqLWMngJ@7lHg2V&zs#dlzZn;-o?W#ioXjcYu!irb#FN!~KN@%EtC?zsW|YZi}sIbnhp z?ac5ka#d+QStF?CZ5WVE?FfARva8|b;7UN=Oz4NqQt)+Rwk9k|j z5F4BoF4%UfreDr-=Qq*z+bnNg%{}o}U~%lz{p3dPtx}fl18ro@MTqU7E+G)gleU5M zkfD%dIB?p0XEC7*rEMXv6lYQSG^rlowunm-hz-qx0*)^F-WHyQEZc>x@dHLsYA4l) ziZp3Esyb39X(&w5Ep&S|hPXX0b?%}CT0`oN8$)aePkS|*7)*)X!OoH)HpUs+GG5m8l8vdwY3%&(+PS)E>#<&z@JVs&}d2$^c|Q2D4Zt+f5IL@ z2h6z%W9X6UlF%kQp^2f0?ZBmpVUA%FqUyO)^%O;PWf8@MDpJ&9NnvqQDX#( zf>wqk6O}=0p-CKlHmwMHo}r-{1SlE^-_P)+(TY?cx55KDtpw&E!(%MYErMCkpcUZ^ zJz5d;C?GK83~NZT^sHf?vo&?;)}7(WW#}@j!FjPA0%&?ASOks3C;?~6pcTXTKq<|d z3FD;4zTHT%#zkBPO_%w-Ei{JUFy+K;sk*?+2YBf+TG;3%s=yFF)E5i9)6`HQ<_qJd=h8$Hn zr9u%EYk#bWioB4kM&qbiaoHufFF0&H@9W=x{J5j9PBZ;3mqYPau?~Pbcep?2S_eX= zEwtUQg+uQJ+YDpaz+oK6@fiN2ZI>{1hWCi0VoC& zrF7Tz>I@uA&bqTmEbxodI_$?VwB)oEM^I=#-i9M&6qNOY96z`vpPUsDR?V3 zHE$GC3kKA#r82s}gH{CI6d?FffZ#b9;t07iN?o8YIM|<1y5K6H3$6pY;7XtiuEi?C zMXl;${V#P9(2BrEGsKZtGL{R*fR{p!)J7o}7qcj$Rz<*gv!qeKG#8Agxw#+$2A?7B zK{ZY(1ICpjwNuEzy_9``Z3w&{M+%;t>H}QNqKH}*0ZYQa z?rbyQK`S!Hf}mYZa~6*;cr}jHRUr%0K^rk4s|X{lii8E_UyB5P1tKj0ihC>DhUI}n zmoJ2xR_OhVXGow z)%+Koeb71{nA3{Dn=oKkl>mseU(1~SI42Q68*vgqyr*PR+jVft9I3ZL4_sY2gJF4P zNnv9DG=sq^?X1CEn!VFO>lC1&6@e?ll2ZXuNLJ*Ca84S4HsW-EAfib&tOOis7lmw0 zu9WSIWoH0&%QXP3#t!eQDA@xrEB~18{si6?!v~Z?gIpX*M`zNR595j8%#aPR5o%Zr zMJN?I{1OmZ#Kx#?0&;Q{kG51tl1W6%mnLth|^u02Bn;kg}f7jUu`{@LPW!10F$ z>u;PsjjaYe(Pt}X1il?h_k}O4D+roErC~9k@$^T@yBa6wmQYBV3#k5vHKXftqQqZ4Qcz&a}Z6`&TfA-J$whZFOWE{X-ng5BF-f`yJz@CQIW zWJzmJ(?cXc7Glv~0W_tT0c9r&#!xVif-@<&o`Odx_>h7$2BtTppc@5~7?BJXn!zY% zNYP3Lj1juV*bX_30CkZb6Q?Iou$GCnvS#5{B(r=WT?}a!8Vk?>Z2+i?_EDwhsL}>1 zt*e6DYY&ixLR2t)0R<;haG6Ru@V^adHhQYEoxw&Xs@oYRXufKp>P55}7AX_-2+}vH zGz+y+n-4kd)v%u9)yf$Ls9FtcxEJzuk);Oa(@6u%S`BFyss)HYa(j~7l@4--9%n)x z0e!4P?QobdmUskpP&z7u^C%seBRZ7TLgrz>EGXZK}0w~N3xl&jTg;^kX3Y$e? zR>+gW4p5j4>P%rzDa;mmQ&<$t5GH8S1#DKt+(}^g5^RU7YDi}xS5*^$)ieu$dntH= zhVzqY9Rd2Q+5wCNN&=lwbpm)@)dk>pRd>j*rnQ5CsK;-+9Vul$8IqTGh0jz!}2}JZud!(Jh$U1Tr^MVg@k&VG1ms=l~l?;J;MNVP&-*i1Br zSc+_s7c6?XwHE<%M4J`Z1EK~3K`rfyEMYnM#~S z9;mbly8)FChQ7$(`yQB0dXJp zrb%{k%FeWBs5`o)z`|(nP$){I+CBw+Vm+aSAtQTCiO1+W3P;(n(Lm@v@ma+SMWS|8 zPuwTys%_|zXcUFXM>7gdlw;_X8jlf$xKzI=%M9fhYQx55i+(Cwt|$v;$3hv6>Lq18 zwj4u)sj{@6%5oKDtJz*C3SIxH?7pJxDpl5t>Q5!l{&Ea`qskusRQ6I)W}%LG22*{l ztQR52P#jgZ%bB$V2ht281WJz*?E#)9+E8gDfPWC4 z=np2176SWlFIXqlS+#^EY7fv830RsmOXS7k(%L|&0i?rNrZhFE<%P^pAC?u(9_6uI zXg$y@mJiK^;@JajWA&qXQRzT*gq2Tg4>T)*<`&TOKu=lg!6#u&LWm=*eUPI8o+y^e z=|k{TKGQ-7Ull~pq;&3q5>;x69w-aoKq{vYpcm{&Fq}epu_=`II!@TAb)i=g9%|j_ zD~SNLT4D|nqZR?_0cu_dmkQ|#$U|)iJr&{7R5U=%fHsGasm-L%A@xEf~|BPebIk)6h4#sn%o9r_c&{u1}z8zMx* zg}FpQUk3C8(JYN*<{GMWGexXf!2t9g(z?VH3T_728Jz$aL%~q0G@gQ4=riO?5lzL9 zl9)pAAC5xli zjY*98j4H-5#%jg}#ui36b0(9Cf*~-?gm*(ybdz{S)DtY4BQ1=UO3S5frM;s`=_Ba& zjNXi+jBAWKMk9mAjAssD<}*u}j8g24sq+OJp6c+` zfUhQewcx7_Umf^z;0y6yuvUDU#P#1(PZcDlbkPJ{13e@d$QHcJVp=?Wi%=i>Fu;q@ zc=|NNV$6f|Jk%eacFe=58*?5S1J5Z`mmsfjacX|H$OnaIrbxt6ahl9AHbWv3rot)O zF;*zek~#(z$V9o)OmVK%F*Q3I;mjD3WKd>`NQz<#r7}^@uT_wrv@kcNxgOwBQBHDp zVYo;pOclz6elj?wC+EvVN(RxQv}{p|41}N@X^L2qotdmCLXpV>paeBn!3rqrHR*~1 zgt;lA>}(!AG((;Y5a$)fihoOonTpL^V>f$6u_u z5_$hgkdzu2l$@WI2CWmPrAa}j6mfp845fk|nYq-EE6QUshlo&SZmOsN$%GPMiv|g^ z^F=62REQK!iiVn*IU>hiA_+EXuye2kOd1Tg2SkI#lB{M^Q`#-=eo1C}hOD)soIGJ} z;qL{(nb{(RjNc1Ga?`|;97=Ox_McMyX+dnJEL-$D*FcdpMUt6^&H4Aj0C8?wW_rGa z68d{_lmr|>N-GVFm4I302wUwI7_odw3q_P&ERqkJ6h(;gWfEaF7z#Ct(lB9edcH9I z_bP#z!t`7*3?~>zpeQ*%JzbdGvWfCM7%V&;o2H#|Eb$bB?v^z9C3yzb)M!z*uz*TQ zn_I1@h{>QRIWs#`)?x^oJXdptzvCW}*RL+eCpj^ZL;*3DUOt|Qi2=ft3{k3It~j?a zN1QJOXP6;Q4HRXI(uFb+A1NErRg^1&Q3A>)FA3I}7$R-y%%Wief%S`05xAlJ9B@aG z`Lf8gXy{*2P(g}_GJ@6>65#2U*i#DKB?B=iBzF+_ODa<#0l3CW3S&evISyzuOI$Zd zA^|5RCuuH`;|k}B$s)jiQeHM#h`nAR_(q(qz)%R~AQbdeIzX76oh(erLjK?baZav+)Y!OjaUt$L!;p znCOhWk_%-bDQ+&tUH*Ji(W2xp=CIshiBho&euIUXGVBvzp8S?iDV3j?Xeq>0B8jV9 zM`#5YQ!DhC4>kgy7IoZEo)A_568S?L5GAh34@jGtPz8ALqY?@efw?K)NZ|R1Rp^;3 z6{d+IbDOiFhQidL!<&Z|5Jk3fkh^83riy;@->@xcIYP}tPmOH=Hc8k>VN0a!mD(S9 z`J^N!V*AP#76xPsrSKBW3y%vmq}bv;sEq=2!7p?va=PXn1SU>y-c|fwBTZhTY43n5 zh^PuU>vwv-KwhDFAA)P}`BW7uvz0n9qSVZ3(x2}l-?Fqq>+u_{dn;7QzflQWp#uFW zxj(gzpW3`#`n`?-4D0tg0HpX-c$Xv4-&!b@r?r1O!4qC)zq zkSnF=a$C@&w#h(~2LD7r83SB~KniKffCknENXy_f_BHj6z%VSi>*g`f_C2Om?n0`? zuSQV__f!#J1Oomhy_)#Py0bqJ!ZZd<|xaX4*t2qqxy0io#{x79U+gsv5x zhX_r?z(lILHpWal(sfXw>hrY}Pr959-E2laG_CrIpAMBAulOO@|(1;WIPf(J_8}#K5O#0;!z;9Cv8l^@eK4 z5v#PlSY4`56T`MHfO5Irp{02UcY?n!0ovg+_+}6$?6iXPo*=49lAeQ zXVMXs!I3u41X@#HFkd}-X10H6{j)cz31J%34y>MI-7ndGmB`-s^A&GdKe5B(H$(fc z*FH4UyMxg<-2hQLUe5k$F5!JIOoQ_^L1*b&G4Qz>hJl6~V$@Crpsp2%!_*<*btBCL zF;rln7;FG6`JllAkEl8j;tVc~EmSvxY&^D19?~tXVDShVJQzGU$V0EtxVY6o$0k(e zqpOBcTiwzrP+OD7)GeKXM_#vdj*$-JE?_A!C;(1SFhdRUtAOPURgeSqRP9MRr3e@E zS->(uCWHx;&oKfTB`p_PfU}KQY&vEM5dhuNrNEKEjDTt-PILfHx|*$Wp~@9J7>FQ@ zRIv1w1a2&TPz={{p#``;WEgQcoYIZDrEBFvj?-AG3>K&KG)Swm4~2&P10zDjtSB+Ayn8UBa@jfW^6 zTo@aQ7n_XKpYOJC zj0u{iLJ|bl7fgiH1_oSLQ$>XaI#Z2yfCkgSI#gA7bX7c+VD!xhReh46raW#B_5;dZ z16$K=hk+5)(V}Rzz-F{?77qhU=tw?|rKQEgP65nR-rKmyn#Q8zsYl0%J;)=lJdBVS zxM1Lcffok87z6@0PgUqcYF1O`r0c52!)AspNdw0816^TLDm*;#OJ}ellQKkIR~1N3 zfm~A_9dn>8v58(u#zjU@#Z2KjRN0CIx5+c&s`62V9@KTkdUaFkWFyzf1`D_ONw|$d zxJ@&28zpla%*X~a3c~}-DI?m;U;h&*mZs^Koh=?54*UB|2m}!c1hR9C2#Sq@9XQ@3 z+AEIW-uUu~J)Du#;F#&HczSpM2dy?uaRbG6D+0m@Z7>s_k_#^;KUpf0xe&aLXK?W&LB7)P|AW^C#LIwnC+iDHCTtXl^UWx}+v3`{r*|&Pz?kt^5Z+ zc|DqiPsC|nGu|?#{JlkUULqJ@V0L!6FjEn76^W?uE~fZl1$=axY5&tHf)WN-I7@$) zB%h{Wp1RSWA^3O9tGQM7?0ImIyEi?oP+RJ%UIS0eA?&U`XT79!C9l zyzh{IS2R80x*GMtEafJw$bd&6ddMe5ugo>5qO&cI>~@46R6T#;gm$tkVyH@1tmioey;=<(g?UQAx1fHuMNv6gcb<_ zgQ*IiaNw8%e8nJJ3|h%x5HYm`s4;Bb2O}u60$$2i1Of*sRW}o8mAmEEc{)N1Gk}{2 z_@ye^fb)dFAq&2a(CZLu{n@_je#$>HMyZ$X-6_5unB?kXs7IUnkh@a4lz6Avnl z^|XOHxR)_U2|R_+ug$Igz0LogevZ%izw7Yd zZ+|vr8&M!z4Ep4QUC3JWcx!g{@5#jN^q_3wXIZ~mMr(Ef@BU$o{GjJ>-{rsz$%YZ) z!R-9ms+#Kx6c&Z0{{PQE-UG0{-0CI(EteEMBwdE0WboKZ`b(^ps0X#|bNb%s80 ze%x_XwN`iAQmQ|k$!5g}xRXE*rZl4WWWZISo-uqb$zcJa%4Nq1r4Uh1mx*)vI;0lP zRN<;bi&AsMxv6{;(g^3Uxvg*F`DUakE~j(bHSIWgvG97*0phtidAz6qKhi{BlMmP4 z1?~cp^bk1r1=NLfYeLDgn*WGqnxs0`Or6UJkBo}ucOW?qI!!V8QE;swP- zbP9GAcsMw_ySqDh__@3Btw;-bi;P-rk>Zp=mJ{YJdzgTm5#@w77zDwll@oBs_|A#; z+NLvml_y^F7hF=!*}7o=!Mb9P)xDk9W|c*4A7jSuw|@u&5-}q6m^U=WFg+CfkK9B1nD|+&_q&Tj()0zufE3S{Z?rYk~-0y)}2U_K+$5v-1 zqz}Iv+&D74_C}h?QR&dmn+NGHTUuEu>$&1_Qait7kE5dC)eOC~UN1f^JL!M6Uu>#V zS>ss`q^*;6f4F0XPq$Ygy}G}eoB95vw$2w7m+r~gL`CjV-iQ+k=TqjGOzihcd#PTx zRatk;oM>RtM0Gi#20g+gjiF18wHSJgHmJ9uPu<}+tZ94s-fo-MsP_{zluXo*!aA~|A9h}Fm^ZhdDOO4%zTGtwFG8Wf2WrUNVWJqP#%AipJ88TU3Cnu*ANw#B7 z)76g@agI}7RwmAMf^!jmAuM%j8b)lFlv#pRIsysVo23e~lF3vd2u2v$o$RK>N!lnc zg@D0>2e&3bB>4-@GLnn+wPI+HY$Z#&YD;s02?^!`$IKrOC(vKi5B1owqj*v0=;2E~ zTXc;o!t9g8OQi~PzO zKWo+}n|U97jibvZ4(di9`gWfFwsqIz&8MVv79_fUIWooTRK3=mQXke75AG0+u)WSV z_tmZSJ5p?DSZgY*Hkt35YJF|PgqTSgUAtCYBR0Gdwmqa@ zP5vXpksar~ zYjjxX=Vqtw`(3?%^s|JNVs+V=2SkQjQ(Mz>#gZ=3%-P2(kj2{F-iCP z!z)8%V^Z%YAF^_^UALf}sg}vsgX=9fYent8V>B%xWLe>stvAnn$}6%aMr^mWIlFHq zlX?H1_Q3FOYZEMn+q^t_xcjkZ9Y;v!7_$pN0^JUek=vtDoFxVxjXp5BhIxolIi z7nW(th$O)UR)Py074%8@ANm%Rn4g!)-QZBHs(m#Oz z{t0i{FEf|&cl@ilwz_f7WtSHmdHJc+rND62g|GYH9T2~*@GNcq?m-y~Cs)l^uN}5{ z!kh4&Gd#a&-n&2VeLqWW!-_F&I~Cttd#2`i_D)axpb|??YzI}_Ob*20yRBW~2qth_5-Qa`|8O=$AMH^uwg4C{6}d{f}32Cr#3{@0!r zKhdw8myw}n{fRcKo03n{0&Kk#|9HZ;$tlEi%=b);_)iX(xAK%^^=-v>5)9OaQD^nQ56R5L4v&<-?sFxS>}_ z?aE+3=FAre_@2%JaAtUWhEV}V|4BdlueMg3Bz+Rvld1cR=O*!Z{&NP!WcwIi5uZBw z=0(=`S$aD6?sk$5H`wM>DR}kc&O!eOi^~#p(>0Dg_QX0~$oqzjHQ}KZOZOCp4xHCj z<;FLwy9@HioLwai9Co$r=DR&_-Ig3r2)ea?t@l0aj9CWDmrA6)-sn$%^v!j;r1Hw3 zM3ccm!$*4Pos-5h!DK3yZpw7J(O&)gRGH0#K~Ax^+mL-4FH|IdJ9#`Ym>;#HBlnRn zc~)YhV{LxaJ;J+E;63?tl?Q8NLPW1}Yg?vZTjg9D{janl8qSAx)2M^Yl)W)8HOAtR8Op*?d z7T&8>Pl9*F#@Y-992`cGx-2!txuh+@U{Z`>``eU9!#lQb=lKyAJB*uge|A#m6@2kB zuie)i$o5S{ZD)Wm;>>lYD!1ob}j>`_=Y7J7z|oM@z^kxi1SL zyOKeb0hNBEy8L}#)@1JzFzpnuY|4wpD!mqXv2G+dWhD+?%;WEQG5O_TJYn#B0j|IM zFB*aRc=`WKE6!MuM6w!a5Z49`uCI19r)E2r;4Lymzwok zI-lq8Sv~4duhR|>yI+miF3A15WCr)q%gm=M7u)YWW~ZYinmFg?hsB?DJE(~~roS0t+I`pg`@No>E120X z;kc__;_Ye1Arl?;u5}4Cdacve0QI}=8gF)H_EELhBef<(=4f#vyo+tR&6k{imwn>E ztGw#Csc|LKD=H1U(ffWpTb<69Ep@ANaMC~aMB=XdUcAvOz5G-3rV3|0k%`v0+d6kr z-;2)#U%IIOyzmfX^TjXrcTLAFT*Lmt?dZGq(Wm<>hXwCaN$M&}@{QQw|0<%cW>DcZ zwu@ShQ7PZ_fmZD8$5me*chy;&I{QbIo@4PorrD4OGyFPc)=rx=<9Nljd1mW06XrK8 zUNZ9Y zI8g1qp5{B?N9Mel4|G=OY<7=Qy;AEya4v_EPwW;cvIWqQ)ta`b|?@6(O! zzZN|mWBlT2M0M2xiJv?u$Q-SkCF%My-6&h`OEy--)@#QK}=64jEjx?T$t8u0sy7i`JVI`0)pyns>MJ z@M%>-+7@HYjbA^`+eDl(4~_ltiCKG)r>^wgtHFCO|10m^>OuG?@2%71gu#1*KSyNQ zZ0uVt7-f^mvWn6+t-0T-lqJId`1Yb)r*N%aRrkuJYr~|y->YyPMgM2K{@*&fLtpF6 z8dsY@4|KczeDm7DH_sII2q!i=$_B>gXmD4b*;_PeyW=I@#S?Opx5v>=M)0^%b8Zju zeGs>6eebzO_l=2BYjzd99e?gsXX5pPy_49?V-?*VG{m&M9l3hyqo)-EE|(s7GW{*f zX(avm6kAL4yf1%zeN-^VQS+n9gS_4CA{I={VoPRhukxIq?r^w=){EqXE_$=a^SV4x zF%Wz@#qU0d?`i$KSVkBm- z$rHN@L<#YPKD&+9g&S>VfAHFo*1N{R>FKADqfYhc^=v`j^z1dBVVC|W+_$RTkYt1wL{y$0!%}N)xCDWey>-IM|w$R+{T)=a?=eyo_J7s_AnxHhSgKam<#J(?j z)i1jbgqw4#xXbpf>e`?y{x(jKz3Kbi z9>*qF98cS`z<9K7D$UzreV<9&ADKPgvf)I^=7Lz}B|pcgHPbgNEm&PsIWynj`qa_f zd~+wk3f0`o_z70~D(gp_FuU^7B=Y#&*CF>l5+do~Xi8^7E}mn^r@f>v9rET$MP+5_|hs|Icsrfo?Y0cz-sSb_-BWXh;M~+V;%Sv1D z(BMnRyvpd(s8(Ju{(CRl6fZZc3`*Pm*e2g2m-;pFd)?fXpT>^fXN`{B9-RB(#-cTw z&*XhO&wLa5MC0TBWm^&}W-lv_NpJUEqCb7tje-KJkt{~U&8|0QjQw6QcZ1z|pMiZneYF$k%-=Gi z<7#2=#dne(m3PhZ4@fug(y8lusowmvBuDmk${)dBKGvDgAG&c|^C!4fm3NSkB2kLz(Qve{74;`s<1o2HTHp*Q_<2uik{H5MZuN2Fc`WQ|}Vsnh@Vp;NtAw z_cwDr;CjGqw8($qaK_}PLnjvw*FL-NLQ7kLI4rgmH`i_sK?Bw;uHNL^J^aV(fics% zUJo0x{Oy-sYwb^F`f2k&^quDLrLkg{THWjY3*Njmz1HW-*uKRDM~5a)KL2AqF++dw zQIE;x>-v8#69&A@k33N6aZj3I%*cB0_al7u=X+j)g*}T6vqwZ1ChqO!>=Ai@v&FmL zz+>-R+s4wL&sZPO(09y(h})YPoXu95H%r`-`WoE!QIqBvcRcdIRAc9+_mR)b4vyNn zR!utgdFIVB&zp`lOPQ~10_L50S-x{xSjw%7>q?Bq-dqs0VnW@ikF20}_O78bTwEfp zUTWlxeVaUKtIy_s{pa*uyFgIm?iA4BL5EkKW4pTc2!B;|z3PCJA7^2g-N5j5h6N+2Gfm9Xs!&ew{RTkPhW3Qk&YI18N434 z745S#W>$#ympz_&N1N5F@wyY=P^vX)${tP5u8OG2a?Po*@795RcVmk6d4`abox!RIC(-O&wIxxYDj?CAxQtnRjNkAxZLEh?_f@So^aS7s3X&_^)cduY2i z^B#pJa2{Q$9chwHC#AcOuOLbmtUdoh+7NG0|imGg0@8!4~Zp-!WdHj^?`RE#Y-u&4v z3vJw1>bFl+->2NH4};Bmkvy_tgGyQV)-h4cX#tGIV(=&(`Nkno3mD5Y>D%v)XOul?xwIVHs?eP97uNu(t`@P2$dZG z0hgX+475z~CJh2E%ERM5yL2X`0d#>czd*So~`JZ#Zto66I$jbkHAlaIz#h74U;+it&k@Usm$Pk2Xc zOjYNO$T?A}HGIz=y*tD9s=hm2S~%rm`_VSl92bO*dIofyhGpEE`y{(PBH-TO_P z!;_t2=T#)BSeljPxSX82VB#uYuKyZdmwSKci1x>yC|z-5V*RMTvzC0|gpL|1PF_9E zu`<$HQ}@&1(^IzxYAWxwi5nv>?)IkJgvhBTtFtXrHFj=XH|BZ23a2jWJ!lC7)~snC zb}4K~;tsi9l5 zD9K^UsjCe;V+(`B7n09z^6bd1lC~TDmQTO8c)FF!*T%xS4hI|3yeAF+{`ui_Kj#I5 zgZEgip)Fb6?ZxPvc;7u8>OZv8_cZ!?{Py)%doM0wrj~BMx@*W5vm>e&MP-}jPw-0k zqW&P}!GY&HwG*Sra+M(vPfu3HVzee-pq2vqFUCTajrotP1rRTnuLU;EYr&rf+?!Vg zKE!Q21f;8{JZj@cp?ngf|M;p^PW$~<0}bD5puw#Mm~*QeK1+0r9M@jUT~)3V?y~dk z*4}1|{0(ihp7)JfwVmZ*zzEqntX9M1wtLnQ-D~O%9tY>JHXQT3Otj(qUmUAhm^yms z^d!sd^$SDhKhNlY;qJVcO>Fzx_19P0tsA1Y{_4y=Cz1@9&(j7y6GV5=b$Ys5HR^0l z;I@9(4mr~ES7*FCne(nwLY3b8;GOq8QrG0Bx)v;}Owo3@=sT_P;T;vt%L#=`Lu{UE z?yckw-aFm9{>wwVzB;Diy{s1xk=)bmv@N9nwYs{1DZ{T9Z7LdNc-?2?gnrM)MvgFe zTjkW}(d5n!>zsQZ-sbaNaIuE&y>Zj}sUAZwEGV`A5YcOjnX6T;XKw1Sn4R;r*S5D9 zaq|66`lyPJi4EtX_f42SdiQ=anN?yt>#e6cT6tac7I6oxb>9WPcynfm}f(O?$qWino(8?2U?r&SO$M90m z(5IeN+RrUQcDLIeSRC}|K&@oRJ;_tcyZeIY9IiiT6nArY#jEfTa{20scVERXTL1O- zhO`Fq+*LeBC1t z+#eY@_K;fG;Y&*coMbaT<~A1adfRjRCC!-Y6X`tS#)dKacNRvxpSfXoaAo%F3-_*! zna~uxs)P0LIr)41srjBqtBcWJyfyeKu=U$J4SdN+c|ktjON>fzNkq+BLvWrq2jnH%cD{*-7 zP8Fv};p$5!{K135lsu_phAfBlZDK$pT}%W#;}(~L6RFG9*>E*D1umc_!gW;q<3M~_ z8DG%F*Onc5#=kgJYV}QjJ8J3dd$ENEju)@V(#_|o&*a=snL5XRX32#@jmZZ@iH`O@ zjkS{VIm5s2?edI$qVvA4E34mS-b~qN?z(hVKhcQECF6smdS26*T71DE)aad;|M=*0 z8@^>d^igrNnfJuoaOtHj#)GGOK6svbJkYyfh{Zc@$+F3^;T7*scAy2@9vr8$YspHc z#=N?W&l!$0Ds8*iX7vt9F;&aV?K^wsqv7xOPkI+@cjs&8b9-FtbFJ1rUf;3q-0gQ- z>*rX{njNm?t^QVZ>=n~mLAwVHhaJwuFWemB$v(n9cx3Im$D6L-Y&)h$P;U>xz>WsP zHoouJc*njIFLU;$K4UX-#ml$JYJHikWrVG@Pk9$^c$)hDn(zR{mHDH6Sc6&TSsU|B+w2tz zw=~>3V#wHg*YBv7_3Jw#r&qK7s7jc54PB`U-qYvZtfgw9-E`)Znw~>8hd0h!+9hbP ziR+OIix)2%GQ|9Iw;86ZzjU=I{jjicU)HwJSr1<37Z|*H;XbFZUFeT1H5M89Pu73_ zI{u}4>5I(H>%Wq9jIfD!@8;*EOz}RypjSlXzS21JssfI{Y)HKydt;X`D^4xxcc5y_ zytskABDw|b_dh;wP&~V|Th_P2MF;leo~SkbH8$ z*U~f9^(B+T%ObSDP24j%@PB8VZ0Orv**B*Z*Y_H`?6_xeupr$|bmC0!3rl-^>G^c) z%fr6jJyJhv7o`2@$0E~%_xW4x9~@fUcf5w`q+820hIKIF^48U^IDN&YMyAONP}?(2 znxCmYymQIh$CU-QBG(k$h!akJ9b4IZeb4I+jT)Z1es9Qa?qBKz9V~XKPG8io;ZA14 zOx5iu{)z;qc-$BJ#yGni#J{Smh5r;5LeiC6O9$)zN$}s$97y;ov2^MQQwtZf+j+Gz z>hE+S+Apim|DNqUsklVrPVxnOXE#?@{1Vm`w)23xV3aKWj~qNYke2d;hjH`4mvrA zMwRZmEBqRKprf&6x~{~)Y~1?L)Ui>?8~c45Z0g+*m%nDuIR9|p9_O{^vwYHreMs9+ zpBXr`{#@v{+{bfIY+Uhnh%KAna3g{>W$PGK*JlMr8=lWO?e)|taOd*(w^H{kArA1= zrWKt2x_kfez<&Mp<`c|F^KfNw=Lz)GgTLI&UWVUlj^j^$7f@6jYcDiI*@J-0%vL?`#*5m?@xHc zCbp8=#NvBMWi!aKsbtxtpZ2k3q<7Ocl+fe<={`0pG(^6M4Ty?yN|pcVqQ9|=je;M0 zHSc2a4;25_E>`8qm>!xBj@+BwrEDPGdqH)TnYiZVvQr=Ud(Sc-to;5tE~h_er|r2A%Tt^_zDqLH|d>r~dk` zvn_jt%If`fj;-G}?8vaU?j?P@7`>fS*nLVgTJNE)|G}xSOmuzamaIod&-`&>2oi^q zftKc8XY1%oXHM#4vwQ0|#{IlSg6TzxQ`y)%)Ge<4i zv(R82!+-epEv56!J$PHJ9;d$g_0l*0`eE>W_CM zLxox5!7Iy7E>~OQx$D)Dlh?{OOHLcV-#(HsDg9zN);892Q~Zr%nmy+X87=Ls`ee4l zi;8>Bj=DA<_B+LPH2ZjLO~eiB?HgC#oVjVa|Kj6k+xvyz8}-R{ZZ#*3ytqpy2)&z9 z^kL38C&Qy=>-%h3cPr3qR@A_&RTmETe3*GB?!fswTT{<>nRrFGCm|vag z?Cd?EsJe*kW$iIKJmX<~iQ0#t;sJ!r*K3ge!Ra@G78Z}UF`Rvcr|-CVdZlj0;oK~# zotM3l(a=Q?*dtX0Dfeg1l9Zl&;(cIgS>q3$zg7Q}8jttK|6z92bxllV>YYyJN29-w z&qq5VAm;5>CJV+Ia$jV=dB+YJutZV`u6doPlbOTd!%|t%Cq?6 z)x3e7c3;%q>Z3M5bSwR+prXW@y)U@PWcj_t>#tWjW!|wQgvBYJlna$1^pt*!mkh5V|E>(+nsDmm;l;72t0D!F`hfp-G@|EbmGPk8_O zGT>ib(V^ZD5CqZ>N?I^_*^F&h6K|~N)Eo0gP5t=%!}j{=F|tk_>5H{H*_`TYs4@E7 zmwpb{@0j-?V;+r8ozy;d_2|{Lj^n4dvq*Y!1lP9`+#53RXt>W$~xN{Hmh#$%$QsD`SFT?3yZ$2DCYKX=_JUh z&N-tu`K0h^$exECZ!O<_&*+=%dO5el09XD^Sx)?@I}4U|ba+>{rg)(2?DooB+D098 z)c2yL)x+9H0-@@#fQzCRkH0!rmD2}7=(ay~Mt@lKfB1l~*oqA&_2w%A^tNb|d!HXq zY&^5SOFdTyjCkcXVnC<9m1PIXvVBX+c9Ug0{v%uOUw-TH`;Q7EVq>Tu75b9`cZUGC zU=Ig=poa(FjFeVV#zCZ8 zi@G#Eyy|Yc3q+kQYd#tWreNw}=?9r`M{dIxGcXeOih;{DFD4OfP zrzHGl)SW&TM;m0V-7)P}S;M4^3GEsaPg?{{H+vqGI@xun$D+DLLJNMnqsmDW&)lrF zCkw)>>MpK(!wi^ivbgtwsbLRJ&npPH9rMG&@#MU?C&Do^QtDTA@37o($Wck3H&K2I zVm%fH|TQaz5^8sew8*1iF z`)ALA^4M4_+nS$aV*=8kIi5x5YyK3_Ab*W@jp$5Uz6%|&&#>zLIrt_~+?f4GA6ci7SKYg%rtC5qoayYfW1Pc^HDl_B zEKbtD>~Fs5h5n4~-$o04Essac+9~^ZckA9y9r=q7+{(Su<%H+*8Nof7@~DOoLqw*B&` literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.Extensions.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.Extensions.xml new file mode 100644 index 000000000..af646a2d0 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.Extensions.xml @@ -0,0 +1,275 @@ + + + + Microsoft.Threading.Tasks.Extensions + + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + + Provides asynchronous wrappers for .NET Framework operations. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The cancellation token. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + The cancellation token. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads a maximum of count characters from the reader asynchronously and writes + the data to buffer, beginning at index. + + + When the operation completes, contains the specified character array with the + values between index and (index + count - 1) replaced by the characters read + from the current source. + + + The maximum number of characters to read. If the end of the stream is reached + before count of characters is read into buffer, the current method returns. + + The place in buffer at which to begin writing. + the source reader. + A Task that represents the asynchronous operation. + + + + Reads asynchronously a maximum of count characters from the current stream, and writes the + data to buffer, beginning at index. + + The source reader. + + When this method returns, this parameter contains the specified character + array with the values between index and (index + count -1) replaced by the + characters read from the current source. + + The position in buffer at which to begin writing. + The maximum number of characters to read. + A Task that represents the asynchronous operation. + + + + Reads a line of characters from the reader and returns the string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + + Reads all characters from the current position to the end of the TextReader + and returns them as one string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + Writes a string asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + Writes a line terminator asynchronously to a text stream. + The writer. + A Task representing the asynchronous write. + + + Writes a string followed by a line terminator asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char followed by a line terminator asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + + Clears all buffers for the current writer and causes any buffered data to + be written to the underlying device. + + The writer. + A Task representing the asynchronous flush. + + + Starts an asynchronous request for a web resource. + Task that represents the asynchronous request. + The stream is already in use by a previous call to . + + The source. + + + Starts an asynchronous request for a object to use to write data. + Task that represents the asynchronous request. + The property is GET and the application writes to the stream. + The stream is being used by a previous call to . + No write stream is available. + + The source. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..8438577c2042e5d6899425d500bf8074aae650a1 GIT binary patch literal 37104 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.xml new file mode 100644 index 000000000..5c22030d7 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/win8/Microsoft.Threading.Tasks.xml @@ -0,0 +1,630 @@ + + + + Microsoft.Threading.Tasks + + + + + Provides extension methods for threading-related types. + + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time in milliseconds for the source to be canceled. + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time for the source to be canceled. + + + Gets an awaiter used to await this . + The task to await. + An awaiter instance. + + + Gets an awaiter used to await this . + Specifies the type of data returned by the task. + The task to await. + An awaiter instance. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Event handler for progress reports. + Specifies the type of data for the progress report. + The sender of the report. + The reported value. + + + + Provides an IProgress{T} that invokes callbacks for each reported progress value. + + Specifies the type of the progress report value. + + Any handler provided to the constructor or event handlers registered with + the event are invoked through a + instance captured + when the instance is constructed. If there is no current SynchronizationContext + at the time of construction, the callbacks will be invoked on the ThreadPool. + + + + The synchronization context captured upon construction. This will never be null. + + + The handler specified to the constructor. This may be null. + + + A cached delegate used to post invocation to the synchronization context. + + + Initializes the . + + + Initializes the with the specified callback. + + A handler to invoke for each reported progress value. This handler will be invoked + in addition to any delegates registered with the event. + + The is null (Nothing in Visual Basic). + + + Reports a progress change. + The value of the updated progress. + + + Reports a progress change. + The value of the updated progress. + + + Invokes the action and event callbacks. + The progress value. + + + Raised for each reported progress value. + + Handlers registered with this event will be invoked on the + captured when the instance was constructed. + + + + Holds static values for . + This avoids one static instance per type T. + + + A default synchronization context that targets the ThreadPool. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The to await. + + true to attempt to marshal the continuation back to the original context captured + when BeginAwait is called; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The underlying awaitable on whose logic this awaitable relies. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The default value to use for continueOnCapturedContext. + + + Error message for GetAwaiter. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + + Fast checks for the end of an await operation to determine whether more needs to be done + prior to completing the await. + + The awaited task. + + + Handles validations on tasks that aren't successfully completed. + The awaited task. + + + Throws an exception to handle a task that completed in a state other than RanToCompletion. + + + Schedules the continuation onto the associated with this . + The awaited task. + The action to invoke when the await operation completes. + Whether to capture and marshal back to the current context. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Invokes the delegate in a try/catch that will propagate the exception asynchronously on the ThreadPool. + + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Whether the current thread is appropriate for inlining the await continuation. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable context for switching into a target environment. + This type is intended for compiler use only. + + + Gets an awaiter for this . + An awaiter for this awaitable. + This method is intended for compiler user rather than use directly in code. + + + Provides an awaiter that switches into a target environment. + This type is intended for compiler use only. + + + A completed task. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Ends the await operation. + + + Gets whether a yield is not required. + This property is intended for compiler user rather than use directly in code. + + + Provides methods for creating and manipulating tasks. + + + Creates a task that runs the specified action. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified action. + The action to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the function. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + An already completed task. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + + A callback invoked when all of the tasks complete successfully in the RanToCompletion state. + This callback is responsible for storing the results into the TaskCompletionSource. + + A Task that represents the completion of all of the provided tasks. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates an already completed from the specified result. + The result from which to create the completed task. + The completed task. + + + Creates an awaitable that asynchronously yields back to the current context when awaited. + + A context that, when awaited, will asynchronously transition back into the current context. + If SynchronizationContext.Current is non-null, that is treated as the current context. + Otherwise, TaskScheduler.Current is treated as the current context. + + + + Adds the target exception to the list, initializing the list if it's null. + The list to which to add the exception and initialize if the list is null. + The exception to add, and unwrap if it's an aggregate. + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.Phone.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.Phone.dll new file mode 100644 index 0000000000000000000000000000000000000000..b9812870f70f534d6785d6a0735e931d0509d033 GIT binary patch literal 28984 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 Qt0R510!1UJpc$e60~XE>xBvhE literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.Phone.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.Phone.xml new file mode 100644 index 000000000..515d7031d --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.Phone.xml @@ -0,0 +1,141 @@ + + + + Microsoft.Threading.Tasks.Extensions.Phone + + + + + Provides asynchronous wrappers for .NET Framework operations. + + + Provides asynchronous wrappers for .NET Framework operations. + + + + Downloads the resource with the specified URI as a string, asynchronously. + The WebClient. + The URI from which to download data. + A Task that contains the downloaded string. + + + Downloads the resource with the specified URI as a string, asynchronously. + The WebClient. + The URI from which to download data. + A Task that contains the downloaded string. + + + Opens a readable stream for the data downloaded from a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a readable stream for the data downloaded from a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + The HTTP method that should be used to open the stream. + A Task that contains the opened stream. + + + Opens a writeable stream for uploading data to a resource, asynchronously. + The WebClient. + The URI for which the stream should be opened. + The HTTP method that should be used to open the stream. + A Task that contains the opened stream. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The HTTP method that should be used to upload the data. + The data to upload. + A Task containing the data in the response from the upload. + + + Uploads data in a string to the specified resource, asynchronously. + The WebClient. + The URI to which the data should be uploaded. + The HTTP method that should be used to upload the data. + The data to upload. + A Task containing the data in the response from the upload. + + + Converts a path to a Uri using the WebClient's logic. + Based on WebClient's private GetUri method. + + + Converts a path to a Uri using the WebClient's logic. + Based on WebClient's private GetUri method. + + + Asynchronously invokes an Action on the Dispatcher. + The Dispatcher. + The action to invoke. + A Task that represents the execution of the action. + + + Asynchronously invokes an Action on the Dispatcher. + The Dispatcher. + The function to invoke. + A Task that represents the execution of the function. + + + Used with Task(of void) + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..4d862e1730a34a6a5cfa39d04840bd039cf9de29 GIT binary patch literal 31520 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.xml new file mode 100644 index 000000000..af646a2d0 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.Extensions.xml @@ -0,0 +1,275 @@ + + + + Microsoft.Threading.Tasks.Extensions + + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + + Provides asynchronous wrappers for .NET Framework operations. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The cancellation token. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + The cancellation token. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads a maximum of count characters from the reader asynchronously and writes + the data to buffer, beginning at index. + + + When the operation completes, contains the specified character array with the + values between index and (index + count - 1) replaced by the characters read + from the current source. + + + The maximum number of characters to read. If the end of the stream is reached + before count of characters is read into buffer, the current method returns. + + The place in buffer at which to begin writing. + the source reader. + A Task that represents the asynchronous operation. + + + + Reads asynchronously a maximum of count characters from the current stream, and writes the + data to buffer, beginning at index. + + The source reader. + + When this method returns, this parameter contains the specified character + array with the values between index and (index + count -1) replaced by the + characters read from the current source. + + The position in buffer at which to begin writing. + The maximum number of characters to read. + A Task that represents the asynchronous operation. + + + + Reads a line of characters from the reader and returns the string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + + Reads all characters from the current position to the end of the TextReader + and returns them as one string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + Writes a string asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + Writes a line terminator asynchronously to a text stream. + The writer. + A Task representing the asynchronous write. + + + Writes a string followed by a line terminator asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char followed by a line terminator asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + + Clears all buffers for the current writer and causes any buffered data to + be written to the underlying device. + + The writer. + A Task representing the asynchronous flush. + + + Starts an asynchronous request for a web resource. + Task that represents the asynchronous request. + The stream is already in use by a previous call to . + + The source. + + + Starts an asynchronous request for a object to use to write data. + Task that represents the asynchronous request. + The property is GET and the application writes to the stream. + The stream is being used by a previous call to . + No write stream is available. + + The source. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..8438577c2042e5d6899425d500bf8074aae650a1 GIT binary patch literal 37104 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.xml new file mode 100644 index 000000000..5c22030d7 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/wp8/Microsoft.Threading.Tasks.xml @@ -0,0 +1,630 @@ + + + + Microsoft.Threading.Tasks + + + + + Provides extension methods for threading-related types. + + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time in milliseconds for the source to be canceled. + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time for the source to be canceled. + + + Gets an awaiter used to await this . + The task to await. + An awaiter instance. + + + Gets an awaiter used to await this . + Specifies the type of data returned by the task. + The task to await. + An awaiter instance. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Event handler for progress reports. + Specifies the type of data for the progress report. + The sender of the report. + The reported value. + + + + Provides an IProgress{T} that invokes callbacks for each reported progress value. + + Specifies the type of the progress report value. + + Any handler provided to the constructor or event handlers registered with + the event are invoked through a + instance captured + when the instance is constructed. If there is no current SynchronizationContext + at the time of construction, the callbacks will be invoked on the ThreadPool. + + + + The synchronization context captured upon construction. This will never be null. + + + The handler specified to the constructor. This may be null. + + + A cached delegate used to post invocation to the synchronization context. + + + Initializes the . + + + Initializes the with the specified callback. + + A handler to invoke for each reported progress value. This handler will be invoked + in addition to any delegates registered with the event. + + The is null (Nothing in Visual Basic). + + + Reports a progress change. + The value of the updated progress. + + + Reports a progress change. + The value of the updated progress. + + + Invokes the action and event callbacks. + The progress value. + + + Raised for each reported progress value. + + Handlers registered with this event will be invoked on the + captured when the instance was constructed. + + + + Holds static values for . + This avoids one static instance per type T. + + + A default synchronization context that targets the ThreadPool. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The to await. + + true to attempt to marshal the continuation back to the original context captured + when BeginAwait is called; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The underlying awaitable on whose logic this awaitable relies. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The default value to use for continueOnCapturedContext. + + + Error message for GetAwaiter. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + + Fast checks for the end of an await operation to determine whether more needs to be done + prior to completing the await. + + The awaited task. + + + Handles validations on tasks that aren't successfully completed. + The awaited task. + + + Throws an exception to handle a task that completed in a state other than RanToCompletion. + + + Schedules the continuation onto the associated with this . + The awaited task. + The action to invoke when the await operation completes. + Whether to capture and marshal back to the current context. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Invokes the delegate in a try/catch that will propagate the exception asynchronously on the ThreadPool. + + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Whether the current thread is appropriate for inlining the await continuation. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable context for switching into a target environment. + This type is intended for compiler use only. + + + Gets an awaiter for this . + An awaiter for this awaitable. + This method is intended for compiler user rather than use directly in code. + + + Provides an awaiter that switches into a target environment. + This type is intended for compiler use only. + + + A completed task. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Ends the await operation. + + + Gets whether a yield is not required. + This property is intended for compiler user rather than use directly in code. + + + Provides methods for creating and manipulating tasks. + + + Creates a task that runs the specified action. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified action. + The action to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the function. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + An already completed task. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + + A callback invoked when all of the tasks complete successfully in the RanToCompletion state. + This callback is responsible for storing the results into the TaskCompletionSource. + + A Task that represents the completion of all of the provided tasks. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates an already completed from the specified result. + The result from which to create the completed task. + The completed task. + + + Creates an awaitable that asynchronously yields back to the current context when awaited. + + A context that, when awaited, will asynchronously transition back into the current context. + If SynchronizationContext.Current is non-null, that is treated as the current context. + Otherwise, TaskScheduler.Current is treated as the current context. + + + + Adds the target exception to the list, initializing the list if it's null. + The list to which to add the exception and initialize if the list is null. + The exception to add, and unwrap if it's an aggregate. + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.Extensions.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..4d862e1730a34a6a5cfa39d04840bd039cf9de29 GIT binary patch literal 31520 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.Extensions.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.Extensions.xml new file mode 100644 index 000000000..af646a2d0 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.Extensions.xml @@ -0,0 +1,275 @@ + + + + Microsoft.Threading.Tasks.Extensions + + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + + Provides asynchronous wrappers for .NET Framework operations. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + A Task that represents the asynchronous read. + The source. + The buffer to read data into. + The byte offset in at which to begin reading. + The maximum number of bytes to read. + The cancellation token. + The array length minus is less than . + is null. + or is negative. + An asynchronous read was attempted past the end of the file. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Writes asynchronously a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + A Task that represents the asynchronous write. + The source. + The buffer containing data to write to the current stream. + The zero-based byte offset in at which to begin copying bytes to the current stream. + The maximum number of bytes to write. + The cancellation token. + length minus is less than . + is null. + or is negative. + The stream does not support writing. + The stream is closed. + An I/O error occurred. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Flushes asynchronously the current stream. + + A Task that represents the asynchronous flush. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads all the bytes from the current stream and writes them to the destination stream. + + The source stream. + The stream that will contain the contents of the current stream. + The size of the buffer. This value must be greater than zero. The default size is 4096. + The cancellation token to use to cancel the asynchronous operation. + A Task that represents the asynchronous operation. + + + + Reads a maximum of count characters from the reader asynchronously and writes + the data to buffer, beginning at index. + + + When the operation completes, contains the specified character array with the + values between index and (index + count - 1) replaced by the characters read + from the current source. + + + The maximum number of characters to read. If the end of the stream is reached + before count of characters is read into buffer, the current method returns. + + The place in buffer at which to begin writing. + the source reader. + A Task that represents the asynchronous operation. + + + + Reads asynchronously a maximum of count characters from the current stream, and writes the + data to buffer, beginning at index. + + The source reader. + + When this method returns, this parameter contains the specified character + array with the values between index and (index + count -1) replaced by the + characters read from the current source. + + The position in buffer at which to begin writing. + The maximum number of characters to read. + A Task that represents the asynchronous operation. + + + + Reads a line of characters from the reader and returns the string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + + Reads all characters from the current position to the end of the TextReader + and returns them as one string asynchronously. + + the source reader. + A Task that represents the asynchronous operation. + + + Writes a string asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + Writes a line terminator asynchronously to a text stream. + The writer. + A Task representing the asynchronous write. + + + Writes a string followed by a line terminator asynchronously to a text stream. + The writer. + The string to write. + A Task representing the asynchronous write. + + + Writes a char followed by a line terminator asynchronously to a text stream. + The writer. + The char to write. + A Task representing the asynchronous write. + + + Writes a char array followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + A Task representing the asynchronous write. + + + Writes a subarray of characters followed by a line terminator asynchronously to a text stream. + The writer. + The buffer to write. + Starting index in the buffer. + The number of characters to write. + A Task representing the asynchronous write. + + + + Clears all buffers for the current writer and causes any buffered data to + be written to the underlying device. + + The writer. + A Task representing the asynchronous flush. + + + Starts an asynchronous request for a web resource. + Task that represents the asynchronous request. + The stream is already in use by a previous call to . + + The source. + + + Starts an asynchronous request for a object to use to write data. + Task that represents the asynchronous request. + The property is GET and the application writes to the stream. + The stream is being used by a previous call to . + No write stream is available. + + The source. + + + diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.dll b/packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..8438577c2042e5d6899425d500bf8074aae650a1 GIT binary patch literal 37104 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 literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.xml b/packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.xml new file mode 100644 index 000000000..5c22030d7 --- /dev/null +++ b/packages/Microsoft.Bcl.Async.1.0.168/lib/wpa81/Microsoft.Threading.Tasks.xml @@ -0,0 +1,630 @@ + + + + Microsoft.Threading.Tasks + + + + + Provides extension methods for threading-related types. + + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time in milliseconds for the source to be canceled. + + + Cancels the after the specified duration. + The CancellationTokenSource. + The due time for the source to be canceled. + + + Gets an awaiter used to await this . + The task to await. + An awaiter instance. + + + Gets an awaiter used to await this . + Specifies the type of data returned by the task. + The task to await. + An awaiter instance. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Creates and configures an awaitable object for awaiting the specified task. + The task to be awaited. + + true to automatic marshag back to the original call site's current SynchronizationContext + or TaskScheduler; otherwise, false. + + The instance to be awaited. + + + Event handler for progress reports. + Specifies the type of data for the progress report. + The sender of the report. + The reported value. + + + + Provides an IProgress{T} that invokes callbacks for each reported progress value. + + Specifies the type of the progress report value. + + Any handler provided to the constructor or event handlers registered with + the event are invoked through a + instance captured + when the instance is constructed. If there is no current SynchronizationContext + at the time of construction, the callbacks will be invoked on the ThreadPool. + + + + The synchronization context captured upon construction. This will never be null. + + + The handler specified to the constructor. This may be null. + + + A cached delegate used to post invocation to the synchronization context. + + + Initializes the . + + + Initializes the with the specified callback. + + A handler to invoke for each reported progress value. This handler will be invoked + in addition to any delegates registered with the event. + + The is null (Nothing in Visual Basic). + + + Reports a progress change. + The value of the updated progress. + + + Reports a progress change. + The value of the updated progress. + + + Invokes the action and event callbacks. + The progress value. + + + Raised for each reported progress value. + + Handlers registered with this event will be invoked on the + captured when the instance was constructed. + + + + Holds static values for . + This avoids one static instance per type T. + + + A default synchronization context that targets the ThreadPool. + + + Throws the exception on the ThreadPool. + The exception to propagate. + The target context on which to propagate the exception. Null to use the ThreadPool. + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The to await. + + true to attempt to marshal the continuation back to the original context captured + when BeginAwait is called; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable object that allows for configured awaits on . + This type is intended for compiler use only. + + + The underlying awaitable on whose logic this awaitable relies. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Gets an awaiter for this awaitable. + The awaiter. + + + Provides an awaiter for a . + This type is intended for compiler use only. + + + The task being awaited. + + + Whether to attempt marshaling back to the original context. + + + Initializes the . + The awaitable . + + true to attempt to marshal the continuation back to the original context captured; otherwise, false. + + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The default value to use for continueOnCapturedContext. + + + Error message for GetAwaiter. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + + Fast checks for the end of an await operation to determine whether more needs to be done + prior to completing the await. + + The awaited task. + + + Handles validations on tasks that aren't successfully completed. + The awaited task. + + + Throws an exception to handle a task that completed in a state other than RanToCompletion. + + + Schedules the continuation onto the associated with this . + The awaited task. + The action to invoke when the await operation completes. + Whether to capture and marshal back to the current context. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Invokes the delegate in a try/catch that will propagate the exception asynchronously on the ThreadPool. + + + + Copies the exception's stack trace so its stack trace isn't overwritten. + The exception to prepare. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Whether the current thread is appropriate for inlining the await continuation. + + + Provides an awaiter for awaiting a . + This type is intended for compiler use only. + + + The task being awaited. + + + Initializes the . + The to be awaited. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Schedules the continuation onto the associated with this . + The action to invoke when the await operation completes. + The argument is null (Nothing in Visual Basic). + The awaiter was not properly initialized. + This method is intended for compiler user rather than use directly in code. + + + Ends the await on the completed . + The result of the completed . + The awaiter was not properly initialized. + The task was not yet completed. + The task was canceled. + The task completed in a Faulted state. + + + Gets whether the task being awaited is completed. + This property is intended for compiler user rather than use directly in code. + The awaiter was not properly initialized. + + + Provides an awaitable context for switching into a target environment. + This type is intended for compiler use only. + + + Gets an awaiter for this . + An awaiter for this awaitable. + This method is intended for compiler user rather than use directly in code. + + + Provides an awaiter that switches into a target environment. + This type is intended for compiler use only. + + + A completed task. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Posts the back to the current context. + The action to invoke asynchronously. + The awaiter was not properly initialized. + + + Ends the await operation. + + + Gets whether a yield is not required. + This property is intended for compiler user rather than use directly in code. + + + Provides methods for creating and manipulating tasks. + + + Creates a task that runs the specified action. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified action. + The action to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute. + The CancellationToken to use to request cancellation of this task. + A task that represents the completion of the function. + The argument is null. + + + Creates a task that runs the specified function. + The function to execute asynchronously. + A task that represents the completion of the action. + The argument is null. + + + Creates a task that runs the specified function. + The action to execute. + The CancellationToken to use to cancel the task. + A task that represents the completion of the action. + The argument is null. + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + Starts a Task that will complete after the specified due time. + The delay in milliseconds before the returned task completes. + A CancellationToken that may be used to cancel the task before the due time occurs. + The timed Task. + + The argument must be non-negative or -1 and less than or equal to Int32.MaxValue. + + + + An already completed task. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + A Task that represents the completion of all of the provided tasks. + + If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information + about all of the faulted tasks. If no Tasks fault but one or more Tasks is canceled, the returned + Task will also be canceled. + + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete only when all of the provided collection of Tasks has completed. + The Tasks to monitor for completion. + + A callback invoked when all of the tasks complete successfully in the RanToCompletion state. + This callback is responsible for storing the results into the TaskCompletionSource. + + A Task that represents the completion of all of the provided tasks. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates a Task that will complete when any of the tasks in the provided collection completes. + The Tasks to be monitored. + + A Task that represents the completion of any of the provided Tasks. The completed Task is this Task's result. + + Any Tasks that fault will need to have their exceptions observed elsewhere. + The argument is null. + The argument contains a null reference. + + + Creates an already completed from the specified result. + The result from which to create the completed task. + The completed task. + + + Creates an awaitable that asynchronously yields back to the current context when awaited. + + A context that, when awaited, will asynchronously transition back into the current context. + If SynchronizationContext.Current is non-null, that is treated as the current context. + Otherwise, TaskScheduler.Current is treated as the current context. + + + + Adds the target exception to the list, initializing the list if it's null. + The list to which to add the exception and initialize if the list is null. + The exception to add, and unwrap if it's an aggregate. + + + Returns a canceled task. + The cancellation token. + The canceled task. + + + Returns a canceled task. + Specifies the type of the result. + The cancellation token. + The canceled task. + + + + Completes the Task if the user state matches the TaskCompletionSource. + + Specifies the type of data returned by the Task. + The TaskCompletionSource. + The completion event arguments. + Whether we require the tcs to match the e.UserState. + A function that gets the result with which to complete the task. + An action used to unregister work when the operaiton completes. + + + diff --git a/packages/Microsoft.Bcl.Build.1.0.21/License-Stable.rtf b/packages/Microsoft.Bcl.Build.1.0.21/License-Stable.rtf new file mode 100644 index 000000000..3aec6b654 --- /dev/null +++ b/packages/Microsoft.Bcl.Build.1.0.21/License-Stable.rtf @@ -0,0 +1,118 @@ +{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Tahoma;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fswiss\fprq2\fcharset0 Calibri;}{\f3\fnil\fcharset0 Calibri;}{\f4\fnil\fcharset2 Symbol;}} +{\colortbl ;\red31\green73\blue125;\red0\green0\blue255;} +{\*\listtable +{\list\listhybrid +{\listlevel\levelnfc0\leveljc0\levelstartat1{\leveltext\'02\'00.;}{\levelnumbers\'01;}\jclisttab\tx360} +{\listlevel\levelnfc4\leveljc0\levelstartat1{\leveltext\'02\'01.;}{\levelnumbers\'01;}\jclisttab\tx363} +{\listlevel\levelnfc2\leveljc0\levelstartat1{\leveltext\'02\'02.;}{\levelnumbers\'01;}\jclisttab\tx720}\listid1 } +{\list\listhybrid +{\listlevel\levelnfc0\leveljc0\levelstartat1{\leveltext\'02\'00.;}{\levelnumbers\'01;}\jclisttab\tx363} +{\listlevel\levelnfc4\leveljc0\levelstartat1{\leveltext\'02\'01.;}{\levelnumbers\'01;}\jclisttab\tx363}\listid2 }} +{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}} +{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}{\s3 heading 3;}} +{\*\generator Riched20 6.2.9200}\viewkind4\uc1 +\pard\nowidctlpar\sb120\sa120\b\f0\fs24 MICROSOFT SOFTWARE LICENSE TERMS\par + +\pard\brdrb\brdrs\brdrw10\brsp20 \nowidctlpar\sb120\sa120 MICROSOFT .NET LIBRARY \par + +\pard\nowidctlpar\sb120\sa120\fs19 These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent363{\pntxtb\'B7}}\nowidctlpar\fi-363\li720\sb120\sa120\b0 updates,\par +{\pntext\f4\'B7\tab}supplements,\par +{\pntext\f4\'B7\tab}Internet-based services, and\par +{\pntext\f4\'B7\tab}support services\par + +\pard\nowidctlpar\sb120\sa120\b for this software, unless other terms accompany those items. If so, those terms apply.\par +BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.\par + +\pard\brdrt\brdrs\brdrw10\brsp20 \nowidctlpar\sb120\sa120 IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW.\par + +\pard +{\listtext\f0 1.\tab}\jclisttab\tx360\ls1\nowidctlpar\s1\fi-357\li357\sb120\sa120 INSTALLATION AND USE RIGHTS. \par + +\pard +{\listtext\f0 a.\tab}\jclisttab\tx363\ls1\ilvl1\nowidctlpar\s2\fi-363\li720\sb120\sa120 Installation and Use.\b0\fs20 You may install and use any number of copies of the software to design, develop and test your programs.\par +{\listtext\f0 b.\tab}\b\fs19 Third Party Programs.\b0\fs20 The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only.\b\fs19\par + +\pard +{\listtext\f0 2.\tab}\jclisttab\tx360\ls1\nowidctlpar\s1\fi-357\li357\sb120\sa120\fs20 ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.\par + +\pard +{\listtext\f0 a.\tab}\jclisttab\tx363\ls1\ilvl1\nowidctlpar\s2\fi-363\li720\sb120\sa120 DISTRIBUTABLE CODE.\~ \b0 The software is comprised of Distributable Code. \f1\ldblquote\f0 Distributable Code\f1\rdblquote\f0 is code that you are permitted to distribute in programs you develop if you comply with the terms below.\b\par + +\pard +{\listtext\f0 i.\tab}\jclisttab\tx720\ls1\ilvl2\nowidctlpar\s3\fi-357\li1077\sb120\sa120\tx1077 Right to Use and Distribute. \par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-357\li1434\sb120\sa120\b0 You may copy and distribute the object code form of the software.\par +{\pntext\f4\'B7\tab}Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.\par + +\pard\nowidctlpar\s3\fi-357\li1077\sb120\sa120\tx1077\b ii.\tab Distribution Requirements.\b0 \b For any Distributable Code you distribute, you must\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-357\li1434\sb120\sa120\b0 add significant primary functionality to it in your programs;\par +{\pntext\f4\'B7\tab}require distributors and external end users to agree to terms that protect it at least as much as this agreement;\par +{\pntext\f4\'B7\tab}display your valid copyright notice on your programs; and\par +{\pntext\f4\'B7\tab}indemnify, defend, and hold harmless Microsoft from any claims, including attorneys\rquote fees, related to the distribution or use of your programs.\par + +\pard\nowidctlpar\s3\fi-357\li1077\sb120\sa120\tx1077\b iii.\tab Distribution Restrictions.\b0 \b You may not\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-357\li1434\sb120\sa120\b0 alter any copyright, trademark or patent notice in the Distributable Code;\par +{\pntext\f4\'B7\tab}use Microsoft\rquote s trademarks in your programs\rquote names or in a way that suggests your programs come from or are endorsed by Microsoft;\par +{\pntext\f4\'B7\tab}include Distributable Code in malicious, deceptive or unlawful programs; or\par +{\pntext\f4\'B7\tab}modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-358\li1792\sb120\sa120 the code be disclosed or distributed in source code form; or\cf1\f2\par +{\pntext\f4\'B7\tab}\cf0\f0 others have the right to modify it.\cf1\f2\par + +\pard\nowidctlpar\s1\fi-357\li357\sb120\sa120\cf0\b\f0 3.\tab\fs19 SCOPE OF LICENSE. \b0 The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent363{\pntxtb\'B7}}\nowidctlpar\fi-363\li720\sb120\sa120 work around any technical limitations in the software;\par +{\pntext\f4\'B7\tab}reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;\par +{\pntext\f4\'B7\tab}publish the software for others to copy;\par +{\pntext\f4\'B7\tab}rent, lease or lend the software;\par +{\pntext\f4\'B7\tab}transfer the software or this agreement to any third party; or\par +{\pntext\f4\'B7\tab}use the software for commercial software hosting services.\par + +\pard\nowidctlpar\s1\fi-357\li357\sb120\sa120\b\fs20 4.\tab\fs19 BACKUP COPY. \b0 You may make one backup copy of the software. You may use it only to reinstall the software.\par +\b\fs20 5.\tab\fs19 DOCUMENTATION. \b0 Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.\par +\b\fs20 6.\tab\fs19 EXPORT RESTRICTIONS. \b0 The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see {\cf2\ul\fs20{\field{\*\fldinst{HYPERLINK www.microsoft.com/exporting }}{\fldrslt{www.microsoft.com/exporting}}}}\f0\fs19 .\cf2\ul\fs20\par +\cf0\ulnone\b 7.\tab\fs19 SUPPORT SERVICES. \b0 Because this software is \ldblquote as is,\rdblquote we may not provide support services for it.\par +\b\fs20 8.\tab\fs19 ENTIRE AGREEMENT. \b0 This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.\par +\b\fs20 9.\tab\fs19 APPLICABLE LAW.\par + +\pard +{\listtext\f0 a.\tab}\jclisttab\tx363\ls2\ilvl1\nowidctlpar\s2\fi-363\li720\sb120\sa120 United States. \b0 If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.\par +{\listtext\f0 b.\tab}\b Outside the United States. If you acquired the software in any other country, the laws of that country apply.\par + +\pard\nowidctlpar\s1\fi-357\li357\sb120\sa120\fs20 10.\tab\fs19 LEGAL EFFECT. \b0 This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.\par +\b\fs20 11.\tab\fs19 DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED \ldblquote AS-IS.\rdblquote YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.\par + +\pard\nowidctlpar\li357\sb120\sa120 FOR AUSTRALIA \endash YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS.\par + +\pard\nowidctlpar\s1\fi-357\li357\sb120\sa120\fs20 12.\tab\fs19 LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.\par + +\pard\nowidctlpar\li357\sb120\sa120\b0 This limitation applies to\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent363{\pntxtb\'B7}}\nowidctlpar\fi-363\li720\sb120\sa120 anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and\par +{\pntext\f4\'B7\tab}claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.\par + +\pard\nowidctlpar\sb120\sa120 It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.\par +\lang9 Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French.\par +Remarque : Ce logiciel \'e9tant distribu\'e9 au Qu\'e9bec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en fran\'e7ais.\par + +\pard\nowidctlpar\s1\sb120\sa120\b\lang1033 EXON\'c9RATION DE GARANTIE. \b0 Le logiciel vis\'e9 par une licence est offert \'ab tel quel \'bb. Toute utilisation de ce logiciel est \'e0 votre seule risque et p\'e9ril. Microsoft n\rquote accorde aucune autre garantie expresse. Vous pouvez b\'e9n\'e9ficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualit\'e9 marchande, d\rquote ad\'e9quation \'e0 un usage particulier et d\rquote absence de contrefa\'e7on sont exclues.\par +\b LIMITATION DES DOMMAGES-INT\'c9R\'caTS ET EXCLUSION DE RESPONSABILIT\'c9 POUR LES DOMMAGES. \b0 Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement \'e0 hauteur de 5,00 $ US. Vous ne pouvez pr\'e9tendre \'e0 aucune indemnisation pour les autres dommages, y compris les dommages sp\'e9ciaux, indirects ou accessoires et pertes de b\'e9n\'e9fices.\par + +\pard\nowidctlpar\sb120\sa120\lang9 Cette limitation concerne :\par + +\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\li720\sb120\sa120 tout ce qui est reli\'e9 au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et\par +{\pntext\f4\'B7\tab}les r\'e9clamations au titre de violation de contrat ou de garantie, ou au titre de responsabilit\'e9 stricte, de n\'e9gligence ou d\rquote une autre faute dans la limite autoris\'e9e par la loi en vigueur.\par + +\pard\nowidctlpar\sb120\sa120 Elle s\rquote applique \'e9galement, m\'eame si Microsoft connaissait ou devrait conna\'eetre l\rquote\'e9ventualit\'e9 d\rquote un tel dommage. Si votre pays n\rquote autorise pas l\rquote exclusion ou la limitation de responsabilit\'e9 pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l\rquote exclusion ci-dessus ne s\rquote appliquera pas \'e0 votre \'e9gard.\par + +\pard\nowidctlpar\s1\sb120\sa120\b\lang1033 EFFET JURIDIQUE. \b0 Le pr\'e9sent contrat d\'e9crit certains droits juridiques. Vous pourriez avoir d\rquote autres droits pr\'e9vus par les lois de votre pays. Le pr\'e9sent contrat ne modifie pas les droits que vous conf\'e8rent les lois de votre pays si celles-ci ne le permettent pas.\par + +\pard\nowidctlpar\sb120\sa120\b\fs20\lang1036\par + +\pard\sa200\sl276\slmult1\b0\f3\fs22\lang9\par +} + \ No newline at end of file diff --git a/packages/Microsoft.Bcl.Build.1.0.21/Microsoft.Bcl.Build.1.0.21.nupkg b/packages/Microsoft.Bcl.Build.1.0.21/Microsoft.Bcl.Build.1.0.21.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..2ce3e31b0387f5bfaef9a8417ec9efbb1043e060 GIT binary patch literal 31401 zcmb5V1yCJ9v@LpYcXxMpch}%92j}2&aCdjt;O_2j!7X?Q?!h5I2>jez@5}w~y<7ix z)pS)?_g=Mk&zh;;YtN`DK|vz|{-eDrQON|*&;+}T+FqbD!H z2hbN`|L4;GcX!h}C@kjf=s@mi<>n4@b`qiFU}dKyw{o&@wgfrZh){Zfty%af#YBZQ ztQ^e1|5mu$f?V9m|Cuq=f^kqzA~slGVw>-Nnj+l3c-3gi?dYQh=LN zfRn?*+M1o)oZX6&obCUMEC0WOV{^0un^~HH&DboQ-Ke(w?w_dIKk{G$AOZ0INuJxGs^0g1#Q6dZ01*Bo&;Nc4 z|2r;aXl*C1u%ic<#suL%K^>R?J7t_0w*n*>F)^8MCUUr~Nrb$wJRcO^VND}f_*L{- zmhUlXxK8s0a_+L73++(kz-4v%U#vI5E#H3b+{#YLxr#^YOI<1)2RsyVq~ffFwiqbb ze9II~>#!El$$`rIVuQq6z=2gIkt3qc5n~SMlVwBPhgqGzYLh%1M4>s|N18Vmrbt~EHkdo%nvc9mf1b7{<^lF@kLp8tb~x3=l*hD^X3$fk9WnWs1Uy;uYh&^Gj~vxU zNCm;~FHZ8NOfu~G^=H4U%y9?4o|Y<~L(8a~he;)8xkBjQX51zRCJ&j#peDrIp!TFy zDAJha`!I@=M?fGhVW<JhB>jp4zzL)ws$LRvh>uZHkHfO;`>)8 z@35bP4OK#ygqPAbk*ydab;cwRt z7BK;UZ5{vs^Bp9AEZ=2P!-6C}ywxjJ2q)f=JtA!FGP^%K0Z->)W(Ss#ieYzKoQYaSP|*`@M!R zt8$ASo24aB&`YmJ??Xu|{Hon|18LWqzuvuR2qN%SZBCu6tfY9g{EDeo(P9R18U5>P ztU5vu)vbE3M4&oF19MuwJDq{Rk?d!4t6MKHzpQfxj+6%*?PDRFmnzFfTCoY?To@~E zt$Y-niD={CRrL9&CqY!>*TR9%YuEirGY9fs?|yd1E?c%W+3K@<^JZkth|-6{Ouwyz zr~*7TlZVw$620C@9$D z?hl^)1xkxj+f2~-R*FAi%_Nojqhnn5o4B0)(#cK1fnU_1DfUk`lhct#?Xq}fb1K@c zpH)RGm~43kC$*|bk^L(dAEk+*r*W&!qxQH$AjsS4e$;pBv8)K=4x##pjK^+p__7bH zQ{S#7H;M5Abb$Yv>YMrA)7vP>boMPRkD>nIuh*-u5>_@%kikcvvjvNV7y9w4Nd`&o z=m&D`U=EnBvt;0wK|;6Vui`B4G$V$csmu$Xy0v`-x8jt%{6SKEEM~LTH<2po9owH{ zye2dyczMRi5$F7vVv_bsAZ_y7d!ZNqD2xa z9H=-Ih){9SmZcpksb>;XKUn?I6_gjCe|dkAlyQqQKH{v%xZ!I`UrZsZfWXg&J*dxA zMf8=^z&~b!#}p5ZTx4>1A2K|WLvb{6ip)ADuvhdqx}to>WPd<&X2k=%VC`Gu?GN6v z8b#uh?H{v3sugi{!7se#GlND}H0O|+{vtyGu9aG3afDe?t|6DzM}Gx5Sma3pJ7&Ap zNei>(X%_Mw>o~odS{#$F7a9{bG>|_9=~>1R$>n*sa3}1dxkJ4SFh)6PbvqYQ@a

)Gp5L}p}DRdStv^L3hwK1Di@Ul|X<*@v%*k}FUnbc+QhG7gdCoO9 z$eQ!#YRm3$-`lto8tK>ioW*?O^EK}PIfJ=KcVf|YuZ(H6<_-%MZ+dQid>npQ?tGo= zh2pr|9mrD|&-(yA7PG2gloym6l>D%i`X#4Dxzq!8jNFVN7o_RonS`@rM_bQwvQRkf_Zz+f&`!;S zDcfTURwHOBam98)-eMm$95DF=Wku`iP@j~U<3fdKgNo6(@f$hbj?_b0y^>GyGgt95 z`BXgE9I{jX=!fPe6lZlk&1u;JG4Bu$p2BQD(a@|kQkA8oT}MiEVfoxdJHV*s&Di;= zue!t2Dr0?PK5d8XvM1qkeAXHZ&`93owGwhni1`ko{FF)VHlj%(^FgQ*mA%*BGvx5Y z;rPWU*uFjn75Jrns06_$0r)>Ta<%SWKVcS_oCWi|oljb?^CZX;17LDrvdAMF2#9GZ zRJn4Y_7siG3`?`Bm74uri}uv%$wq(#fr^LHDd|yRw$at7u1H+5)E1d6T~Gpc#Js@p z)7oS!rSPQ<;zx1V02&00gKLi#SAbcfvH6sU{(GJ56GlR6gIj{<1z|tE%C3{~nq#4V zg`9lzT3$FRyNwsBqDPg;^DC5D=Tk(}CADARoxj-ii9eLA53ri?f~H`6=4ZxN{=DRs zD|giguv$H)ysJ)^QR~L)X8R5&?<|O?hBBc5^BP@E(!d%(M+>tiGA%^7GUy;O=KG6W zT_`rY>Ps~*D-(qqwhN9cN+HF7C?#oW8^3heptI&5vP$EijSo)o)bQwH-K{Kn-~DAn z5a}3Wg1;a|%|m#r^ajGU4%gh}N(Y}Ro5xBj3}qDPNWD8#<{dz}IgrthJ3BwxNFAskfpDsQkQ5ut8oQS_VN zCVv?9yqh_J6Km5A&uyDa=ia6|wdh_vxXP?ZH@O}7_%oZ^rk@%S$z3e!;1+__4JD`0VDOoXz7A6aWw zozkR$QjAE5Wbrb;jOY6%*mqT}I*!LEHTL6_*`BDYu8E;13XQ?I$RICkjz7vygdHk8 z2J#oNwG8SCI+g~pT^{cQF_Kv^jBGYj4?6)oP_lNX<(J>1*{wA-nNTg}+B4X3 zn|h)=AfZafNC*~1+b;6INF>~HYnhB)0VO>9qBR=d%$Q+UDR>Wx+B7}na| zc^la7x;2_hC|c;s`zRU49nB1$62|Q-@t(N&pg3@o&s3F*DJ&gla+T-}c^C>ABZ%2u zy}#~`5@QS-vx+Xc5~dwHlL&tLr!+cm-4xK>j_Fd|4X!gN+A=F^X7y;Kt5KQqj?MNP z?`NLFhuoIffher05?1N%pEs#O713*e$H8KIVmha?uUZ+Z_KEhgK|4*DuCBw7)>s1Z zjJ}`#V|hM}BIk8YnAOiNh0v%@3S_o$S+qhRM2AUT4R05skMz- zxaRtny33L=hR3fBftCZ{Y;d>zcGD*4Z8Ji1mF(x)yw$Pw%t2-dn-#PY;NH z`p%yNbCT4@5}irzj>LaXC&eC4XuOfF6x6akBjuTcPk03=ENk)Gd;O%O*X&RlF^f%jI{vLx8WZDG> zKZA*eQ)Un&knn!jpV#ybmE)pUE-TpqMiqrAu|07?Q`7#?Ky7?<`-YL=;D?uM&z-Nx zefw+&A0GqVb5Pn?j4x3_L_VWfKcXT-n$7OLt#`0KPMu7Eb=DrIvlZBxE9{UPDIKOd zQV;&K6$Q_9HyHU`tpn-ZnjGo{o<|(Fz`fR!2_5?K0k#RThp8zg80=Cd!GDbd>6 zK`3_;TPT36Ar)p3w{A>h4cTkL*naFKb_>#q6$5ArN7olHiHR<9t45Zrg4UA}D!N2{ zF}hcrWc{^mMD)x!q|nX$Pymmz(~k^XvDt5VG_^k`tR!{r2S+)D)5dx7e^73$hsvw$ zMip@_>3~ODQ@7Mx6~V_5hm84i)TcyO=IOLLa2IL|b8NYhp)Q`tJ@~w6D5M&8611;* zTOP}u6PmKlz1kr+MV}o)=zlLS18=I_F$3P{b%DFWgUDvnO;eo@!P7kQJUDEEe~$%P z&L&UkZSKcuzAVtX4FM8vS~jGVx`+U*6*qh@{MGYej8xGSLe1HODN64h z@x~GfjXO14i@dE5MH*~7YxTqUexda2ssu?stwdd0E|bhBPii^ehV#ua)z&gfc~vg- zfm){*!4SVIeiqz5#_;`(!1Y*MFYl@$0no6>KN9^J3Eh+$3B(#WzRJ^1H= zL%TP9q(A5nvSswp`>&IoxcqK0ZKy;wKRXHfrEUA~thuTV&tem%75)r9!9Flu zsjT!9sc~6nRMNmmxNKRk1stOEZ8}OB`L$9o921_N#kzWNKKMRBtO^!>nJ5K)b;gM* z-RE-l771}PCKvh@9OaeXcTc>j+53z@^Uq2G~8j=<@yzDW&-;$+CZ>PprngjhYHU3=JM}CKQQ7I1p{DS-IDug!G+j z#U`5LV+U4)S4H`ayJYm+LNihQqQe4cH6Og>3_-b4o;qHPB~u!nt)j9Qh2c$k{Kqq} z;Uh_UtR+9;%CA*PcnZF&z6i4+9_chZgvSIaXhqLlmjF4Hg{3`o~5xN_m{cnxru%A zGUX$e5q=w8gy5SvuTdrY3Zz=<@&XcSkMnivrZ#IxFL{N;x)!Z7rw{GwZPem{%~II& zLHo1%X3RL+g|;M~P4~Ye+!S``qA8DlOP#zcUvn~TG6sz@fl>A6w{lrK%Fy7(uVzgN znne)D!sKyQY~>%4d1bo<--14ndPq?4#9kU{6T=(d4jk9Vg|Ze=80mUfG8aN|Qr;~G zGsE&9EmFPPNAz91yQOJx5zivDnvEdMIE)d?5N>S>o>ETVGCV+{xK1&>{2^QQic*TF z%;&hmO{FRcsI?+H^n=>PrWyo2$0`As3KeZ5xg`3veFRZ`*COZkc$HokpJS=G)b;%a zDS*f$1m)SmxtZw~`G`7`RRjgb(AEB^snxKyV1N2rD}W&yeqv|UA8k8vLu&u=NQ}SM z5Z7l;#Oa{e5bRqjoJjBz#;JqEGu_|Fnx66!okEs*m?5VaWYQqKAMDXtP7Y6S_SWnycnXUg!Bz5oCyRlrCYM z;KV;b@hgX;@0J21?N6&>Fx*D6S|Wz5v7ijpc=kirB zY&{ZBV7_%$E5Qp;+q7j1l5;&*D_U~sG~Q&?;p(%l9Az(D+x99>wwC525?UY(b8|(Z zmFwzmY9?5?Fw?Ag;8$XFYWx&>`}hgUUGk?(q$!@H{zQMH)mskYijgdZ&s?RVHq)Z+QIO`R*-skhn8d_2lbg`?ELjfJB7_ zdGJ`L{tX5vP3{YPMfZxUUaF}q;yYCNNG;K(K&*h)xH(CdXA`0kqvSvWK>o|UaCp{q zKqvJG4#Y+QLiqT^v2L@gRs-?+o_1Z%brCJ#gDEXdv`Y#5_jY~>`em~b=j@idp?^kn zmyT{e4q`NVbKPnV<~8!)Z%G^`DOYA4>?~1rbPNIwZfc1%odOHSqf*(YzU`+ z6cUmoyL7}4OxUtl^u@*WGo6@8f>(A(y+EX}EM{q&_1umR;p}QExTXcwGujGsUewS$ zXdE|mJ!C@7f)d|PyWVHl+pNz5o#mkw%nSlqntNzf8`iR(6m&cd@bNuaO%L4jA{Fw2 z6#XR91QXML#8=)7{`ndN^RzZ9*(|EXyIxAOfj z!%ycGdE8Hum`}6l4SP2`5@3k2B9=OQQ%Yus-HcApKksoYJ@xw6^_1AK$}(|87*=ewyjNjXzxDAH2vq-AYKraY)KDUht=RrhEL zqM2!KSWT>jk>L{{IV<_Du1QjZ-ouyDhlMzcKRj@;Ovjj#l3kDDsLcWu-vtt^l~c9& zjk1K1zlEA`jc8^On~q5;Cia>6)7y$mOVY-QFmq72QU=1+h|^*qkxvEhn?o=O!TXH4 zu!|BUnfP`6)oscSUpQenAGk;{Qas9#H&0nikDH>JY{KS|PYqYd+-Vy60|oYUVej)h zJyX7k@;3-iAqJm-2+5xREPri<$=Ib_XS!-3Ya+sp&8GPqp+$Kv=6kz0Igbt#9lod1 zWJwc)lp$e2uOCWTiOUi`!mobLX3f&mn1$(Ec)oakNTKSiXB%T99 z>ZR*YN%|K7C11az-QX+Z+uKMQ3PrCkn`pBFbIbfnY`Pp=VTp(MRTbFS*?k{l&w`$> zd%|M|lQ_whO^`)qzfzQPLJDRU7@hy*@HgY<@Et;_um*$0T zukgIao#?^J_vUm54g}p(hiOdU)RBv#6au0>5u_HetNy04PSY*Joa9C@kaG))K>gPJ zF_DS)PJB;Olg@U2Nu_9O;5-bAic@;Z1ZgYZs>sk>Vz|VrP}i!$!QszU6=nB$t5pOrH%F zQq)#PfPv;LEw`cZE(?g;yN4@CTC-sr`q9EZYkZvm50z;Y%Ox@>l~~E}UN1FN^pIKJ ztx=!3U@MqaKq5@gepJvmAPm(u)TQQaOL8%Em{d-)#s<{e7to-kPQ|gcXF{~b;2H8* zU2h}lzZfq5(~0HrW`caS@Y61z3`TS=W*qwa}ZvjDIVO8K_Q8p|NEy#dd8f5;#B+iIX#;4CH0FP&$I{p3F$Wn0+h^9WlD5%dq zd);kBKA6=Q$b%Sard*w`jE{{>jOj&aUP8J89?9@ec$A2dyy1*6-rDP|{mYBi#vnUs ztx!sX>#OU(yA4ZCshm=W&Lt{}dDsC*=5Tv1<6+`Ey?StuM18 z@cU)Jiy97`c+tIk`)i;+ISLv|@o<@E0q;>~ol*3*Im}DCDjd;%d?Y;RHtfE z)b4-T@B0LXCFwH4SaM&Uo5XWrZ-4tKQIOfZVkjJ?1d(=jCt$ok0RFO3Cirh@nTb^|`WSd*aocUa_Jk;@I;M{0W_>y8? zd*!?a%)(F_9N=c|LD1#jo>-M8= zYmO-Or}Lf&>J^5R6UfHrXovL{5}_N{iLU3oj+sdv15#xs@?_*$nA_|`mDeNIt}?5} zwaL9G+S-ng@p()ekRGJyvAsp`HTl}IoUMr5+2g9_ixG)aj%5v54OgRnTEA`tGLqUUomV;;Y%;J$a zj-P)=LRt5|oMfQ=N`8s_Yh3D~z-elTtd?s&y7 zovo&RSYM1iaEf>>dRDV(g&*d4U^x%@fcqIcW9|>{Ocj`@1-JxM>)2+hpnx;DJre4v z)U9--N{bxP{&v2%%w$>hY$y{ri)u52w3)O0XN}?uUOc+M@)791rAevJA>|m1JyRgj}6RGUL#?gg9V_A-6Q8$+KK}D8f)Gcv1!1v-~Z|~ z)ro6e)$o6}hf;ShK4QbJ_pg(8=1^lG=aZyMkWpv~UPr{=+-?LDQIkF!ruI!# zTwM5RG$T-X#8(3ZPu4Vn2LU|PUv#P@JgOV|(KY#A>XPqYqhO>nFOo}au6)SM#l}7h z*;0ZkH7rp+A0E#w-r`06yaE;fenlk}^Lbl=2)KPYABJkmwE0pY!S3_^5cFVINgmv6 z0biE%cEOj`#FD{#!x%N)uGrkrw5755GFLc4q2&XVL4$-NYZB$fF{97CT{rWq1O13_ z@2&Mw-p(1}3k%AdUj2b=zcZcHPrRl@-42)1A-jTmjw2vSkisIwP>x{e*=$hL?FPH* zR@H{8AEA_0wsn3ZJT8=3JN20#(@0($r566vX4B&h0sDBc475`{$Y5E>^EFs+%R5&` z;$beU(k?fIWKxIGSuC#1I0;11!MSnW5jq+PGe1JKmHkzszURd8PkvsG@j;e!qitv) zebVtIHAc+*{iVrKRIzHI(OCW`#D7g_w13e&T_^(pi^%{0)qk7NXqma&yR%w4IQ)0j z|EqpDy|iy@{G!g7kkIfn+$osS?2qA;MMWAoGSU**G8Ex}C2@8HMta1m4ZjeJ-ki5&%1xW=J16Cdwbpdz5e^-#;-7FC*Ny6hs$PuHebNqdKY24d6Ife8oqh& z&tDyLIQ*(_;GdRHW4E+1*YG;=KMtJvheM2;VLV>Gk{y33`$Gc zWn=^AaJ#RzY${@1s1m))azLGT(_gJ85~362ooN*uayfzo#^{3Eh=n*qP)Tu{@SC3r zqSdd#fv|#A5PQGCE@bWCBErI)=3LMA%BKc8${%vo8j8uXotP?8hZpzlA)o%~8r_nT zm$4qSEtr9OaaE1hLTx9!HCNn(!iHG}D@38u0l zrgtu8gV!@+S8)RZtEI>J3EEPIp3c7Wz7}{AxA9G=y8fO4@r}EeZgrp3d`Tf>I%s;F zG*1RE)4N_*J-hmCUT?j_vwSn64obCcQ_UFZM(T6Vgyzk5C+j{dn*QtVjlT+&tbW7+ zO}aCMn=;N9tC}gII$S2c^mQ~39zl+#aKIZz$YH^@W>W_btzu>qLMkaO(n7OqIiM9L z$LL5A(TC5n_&7uYUN#|70jN>{=?-18HvtK27DWptZ+O@A;8P@K3YuV63nC6^V5frx zlzRtX)?LCJjIS+MnqI0X%D!{d z>S^`~I)P%}5rEJnnMjm3ufq>8KZFo`2!}mG5xF{P1E%OSajMr+YA)el9>ObRU;)Va z_Y`0BJS{p}bXiKnGS&B$Z)JP@!|YxOzwejYlh)R6dJ0!b5u6*g;+=0V`q*Ed5D@7x zEvzcKk2tn0#~N7zOZ#-$(sc8x?Lx`kjvy>1#TWUnW@ZVLBaoa(kRdd`V^`ukl#p&i zy~RYto`Wps$x-g@8s3pJ=yR|EngB-Kooa*c842_Wu+rG8r;#+igzQ()bMh=>sC`%G zm6E}JeHHOTB&Rt{P$57CcX(iI%O>eBg6SM_%fyEWUu@DX-tbT-_LdXKAZBI&(Fi%d zYvv%11$tZ3@#EajXfxyZG~`6O1%r(6xwJWaXs8LsiC`35*0bne-Ob4f2l!(Vxhv%f zkEJtximFRQ*RXV>5 zhQY8sa~l!}mOHfwbBl26mcBWb!Df}_rErL9=rnke1;>R0TEVS6&bF;y^qOg0zMmOw z;gQ*@Oy(sL1{Ng9_4}oEVID2Plm<>E%KQ}uyz=eU#khRsOyCKe9t_@2gA@2!hcDS6 zMyI+F)u>>@;^;AlL_sZPt>H!r>}|6e76KsA{9N)@^8^%Vr68U?VUbE$Vr}bc`}Ym9 zgl@9gTzB;X`cUrF!2C0OXQQz*6~UvfX;_%oIF8Rob;&I|mBR}ABEP9c7;%S+B6pZ) z>(Qlz?tU?g!5F%+zQ_>Z4R>yf*tJ4)xmTS_>VHa? zqU$P=BN(7%hwujiM2v37E|rCwhP1coWZxdCTP&HB?(#1sak&HLG`AgdGtGifGQ;`X zf3*;h$u<(J?mnP6;KY<9I|%=3y5l~yt)|hlgV!+#&4>in)9Bg5^BROE zL;`DRHZD|~PQdcRxNYOSTB=kgypL%dQzW%A_v6{yTcu)}`v!SZ%s=t`mYkU{ow4<^ zScai;(TU(!WOYo2ktJpb$I^~pPBx(6uJ!sBy&gLKA*c7}4T^(~!>SW2pCBVY6(>Hvj2GEjDL zgtSZnFYB?QYyMo9Hr~lTOmHIm6%m7=cU^`vfq~a4YTH%}4*f zw&Hh-B;VYTPYGK`*tvX*+%M`W0HnZjXc z>7@L&)|wY0Ftd$~bkTqlZUKfMnz0>LleHi~A8R`I&a^RiD#?&wHc#n}Nx=0gccsMF zf(aS}E#3e5eZ!Y9m(ceZLJ2+XL4-DqJbA}bmF5u1(O+?ZpSAmSPldC~z`ddfEhlN3 zJ990jcTsi6)O52kat&`%BB9My4Q>Zoz~r4hW)X&cMnvTHV{*j;RSG@y*H&SmYVvTX zxQ4O>X$c>F;hrJ7rfoPR_oavwdQ6<&N*DC_W%G z%v_>pk}`0Ps;#;;SSZwMtZfgh-xc7KMn0=2dA|l3zJr#cJyTJvELIwyi5TZbHh~(p zWd82AqELiK0IRa5dpc3SW=@%RdAroo%?v0C(){P$|OsSt@`COzW^ z`>#oeLy{4xJrbFi@|-W$QpGORQ9%gO@?`XsA->vGR7bUYWOLfOwsf2MO5mM&F5;>TtC$`Yc#q=LX@PgQ8L3*dzK{{sV-h3g1JWs#xHI=nrDPZpkMweL*>vT{>=?*uUgaR&$7&*_&$X!MXX><3u;){)9wY!Pq&2Ci&?$(? zjP)3~G-*l!Rp(k=Mh)fFFN&Z{Erz+Ysr!~@jrSc$Z56*4ADB&z_KsZG?TI9H`qyqm z+i+$!rQ%tfTC+s&J8caHF}eDA=l#pP`rB{y4D{+pZ`LTuGxu+A9f?r*L^vmGh=>lP z2U5p$wyW=Ogvlm;-CK1$G~^FxRioZ%IWBFWRy7C`9QUDP!h>_EoZVaP@?;`dyo zb!qPDJW($&XqyLjvb7a(8g}Cmlgz}~Hh^8%mp4aAB?T|MM5h~Msp6b$ey)cd!jE|v zW_P5At(&UQ2zOM6;Tc3-xKerOtf6E2uqw61C6ZVn<8UOSuSSfm+78%A9I^~HO8-)> ziEE3&gScEA4-U?OMunb|U?NDvCkE#&g|^5#6C_de=f%w2Zy@u+$utK*^bnXSdX?(P z60a^)Azl#6?P);%#(GH>pT?ImgoHv+rc{&I<2+QKAZ|+=x}2DdhbzXL=z>wD{TZ^H zJ7fYq&jXU!EGD6~SMECNL0Ef8`-X&t%6VvhhMXK%(v`g%qqH?O&caBWe!Syjv=|lV z(ZM^;KG{~w09UQzsx%|-3t7CtHECen!Vk+6*y?RJEFmGxES5e565gSk^hqMXt;*#? ze7i*vN5$0ZC?ZZ7YYC%)!_hxznPF~j(}pf=uM17FFzjyvOREAlZR2rBvlevtvz!w= z;9Doo8vrTR!W?6tv&n$=$fa=*Ei@{EW&UOp+k~FrFfvBn<50D0GGQB zNo>U$wrgPKgm!LB9k8=Qu-qyC7V!!W{)xcd{xT1wa*k7$hcg5UIMzot&EMbYr4!YK zVpJ?@qjaR%A?jto3aR=?CW$Qrzo)YS8@V^=rYuUn5Y9&KBV{*pO`w(nWC7;IrO-?= zOYy*X9tmp6i_xLd56Q3$j;&$kpU1N9PBvp#~qoo;9DBygxL_< z;b5Ge#eBmqL-IX;*{s(7ky=Z)lt3^095xmmyH(8&B=`Sz;W!dky`<;0(Ja;!HN61$Q>#J@XQi4X#E#e0^Rfkk~E+sn2uDdJF6$SmfYEW3

U@iND>x>YXROGkoM2*O|JZ7!0(F$L49FymjJ)hS>_3Ox;t zg;A6Y0LO~ zaOj;`US#JGxWg<3iIh)1ST$5Sc!wxs+#j`@JJAtdm)^ctmG#_G=45EWHj1>On|+!n zF!&T?b84(9t?cgqd&yy8d6xrNa;P}OUgi`PRn`!%kdl@}WG7_e10#CIY=ws0#lMb& z<@kJ*aw4gJdyVMJ6d^Y=>v9TdT4xgFP@qHI04FqfGYjF@uaOov@1c);4L?wy-VAjx z>cg>ZM~o5D-F?Z(`Bv|V9%w)_atWwhET#I`hkP@rfS^ug^QSOhKR};z&Yay?ljTXX zpeFN-Ix_~(*mRaz^ohO-u$wDWPsIYpcB^;G4u&cH(H;BTPnTN|`#JAbtSa69PXb6XFW+ z$XnLn0=a^KjYTho2^%Q_k%_Lz5P}1(gV~ie6acM*;SFaD1bT-KoByD|jvZOd5y!J* zbdNRRSCGS`r&W^#GW;XhHH`~dNGC!aWwJTYb_&Rer01XNNq5dmU7%W&J%kCVgiuHA z!WQxezE1^+6M~H;B^ojh-9f=#@NbR@en)A~5fUTr7F|yg2ovIm&^N<5;`RuS7D5B9 zgFdxR*N&d83Pkwl(>2X4Z^%^eE!IZl5ExR)HkP6oUC)d^BeVsY5;fBQUlhy~O(;}J z9QnZVb7YoX^iIFsg&X~}rP=x{S z&vD9R6vxruwvTtdP(oDik(g4XW1HAxd9ukJp(6M&^?VU+JmMQT5O`4LqR2#0Y%q8D zk%>by!J;FJ2#RX#VUFa#LJy^GyAsHMA=1zv!6t_Y2WN#6TmV39^b*5%H_#vqX({Yk zCp`H-82Er=e0p>qs14$0XJqW~TUHu;#UX>}TT&Wm@(9Ud?!d|@GyJI{H73YyaS-g4 z2nTZ1GIlIr3V?aFaluf8>Vkgff%_Xu zy?AYR!FdQv6{A1AH7Pia_}wC7(a(fQS`4b1QtJ;aA;yLM{c5>ua`anD<_A=QWGUgE z-|S0D$JCJ=VLz1|;ap1{Ml(FF|0WQI*qbn<+>eTCV^e@VRvn{`-d(?P&ktf?mtOV; z&3ji8>JCE1R!+t`#ApkV2V9s%t@EV)YB_xzEt(gfd~7v+-_k43Wu@qE65T@&tH?7O zj`#ggTz%OeWKzNXg``14!JX?Uf<8o4?T=4@0qPuvP>leE+&A-XX3e@xJNzD7R3-{J zrv6eb7Fbl*E`$1XE9|QBs*`LHCDb>dk04H(VsDL=TaE#(_Uqng$5$JwI+A|{xkY%{ z0?ykUir56Lqm#Id1LSUQ;^_Q$_7p^BC+H?e2E@zXlfR$voo4 zS8?X9?af^^4%LDxm2)*c^z$mzBshg%$rKWUvBoZlN7m3u9^@3X?es|n8s3{1zi^ep zDbjQ~{wO_OHo`Z+u1+7RdS_qVa#*%bfcd^yf}IMP8mk%2Wq)MXsf0AzpR-m{NtK zh;6`BuKlyE4ZcZ${R%%vt1w2A=xmWJCvYu9%;n;2dr|%`n7oY(8qG>hpOk>-ox01L zJYh5qKan4emPC~%CgYYoC)bi5`%OK7{*@|)^$v<;J=VU&ekpo917s4HvegDsrlT!h zre!a`{==E7nS>xhOvxP^C z2f-SZzPCnCf^FGL-a2ttP+CtOP4+D=hnq#k}Nz$LCmZ@RdS|Z=V@CzWHeoC#q zY$qNFyR;~l)s45$Iv&R&-;T?S(Y6;zTBl{|d(~YcjkVd9YZNQT&CluL+4XfR9zxi; zAL5``dSEd<6cK>--MUW#5^747%ON%XY8Rva`MJMj=~@2seN3r5XIc5tT_&jHNUV6z zl;JlT4wZFLbuKR?OG&RPu(=J_V-1PKZFJ{}@Vm<uh9AeL3&cA2i0l1Zb|d z-VBS68H`3U6A{;`k?vcH_GLw5#P6&fCO`;#jgAWJSxOXpDU*`GsCSaW9+VfKm|WaX zl+3}@O`zEO8FpL2a&X4`@!lu@SP%~w1x+=mxlcTnGYFojSu@O*0!_%owLlwPk{*YY zTc30c0e&z>S(L#WpZ|7 zOLxKi^-FhPZVI*LOu1Mp#d9*f6*a4!y!wt8jH2u4rox8daV(L8NWbtqeucd+C+`;) zZN_`7^63xGK3a(^>KUyTWMiCd+$qi=baWaln^OjIlhi75r)m1BdE9jd=@no&a67Cr z=!c!_f)p8($0ZCT$P};INI1DntNnl*=38{N6@hnU5toyJD|P5N9*144B##8RHolFU z;ui`IB9F#V<@m{oloo|%X?CcvLXWAVbX^^YdQ)Llc9dQ{Hp~jUP&XPT+{Su(s%J+; z!`)pbCK#7Wvu4!*p}7D(M`#bRRDQAKpU#k70UI`@UlB@Tf)c`flUvmr$)LVN_6#9d zD*mNePuoAlXjefYQ^iQ2CgD#xW_NZ6KIWSjWk)$BX!%_jGziIYEmz;5@S>~K25jLA zJqiElKO^&U0%%wjA@^|oRkt)>S=6Bbfl|yBP?6;dDI3{!)r&$MEfOiY5PLX?#$ZdL zB^_#C^?Z?k!G1U;psgP9}ECi(ySEOT%go>BuI3Fw_}f)~cr?S>tyj03EG5Q%pl1xxM|9jPDWzf4$JBlhp#+b7rok=}A@}h9 zcob73wHqsLz-Ie`Z+9x?IQeH$K^W)E#+FIlAXkxPqO~JKm_;QMZbgYXDxg#=9|38? zbhV;Z&$c$WjoZH+DZzZt!+-iXqU%)x1cFLG zc(2qO);uy^mLR;6?Zb_@EjuZHj0=?dehL7 zn-nLiV;@lVX*LGOBZ^GCU37CXk3N)=K*0*IWaJ=uZT2t`0Z}Z#QwGz zrpbB5o6=_762;5je|qHbG3WAOg>G~KBDJm0U`Dl5yt6TqJ&)3MQM^p#nCwE8Z`7Ej z{p7K;7-5>h844(_h7|Rc*0q}oIWZ_@o-Ul_>ajby?bzSz0{JUH6q&UrnC^RO%BFjA zc>evvT_LFu@yZj&qS}ddYBd5c{)Zj6RO`r&p68CzNdg7ZKR2UV_S=rX3~4+cD%24@ zp^kC{r(`vLQ4JC6>WuuVH-v%#;WMh6t63TGi50oV2lZNg>wMe=Fp!??QYIdL8=(-Z z>1L=|L8w~TRA?;Lp^u1SnBxLAgeiJ;a}X#Y5#+3mwAL`pD9ttlPO^nfX;9%xZ$_77 zC{K9-lk3N2m%0}VTY+1}V@B`Lk?%Nmy5q18CwH|L>E==b_!CTfy!_cEuryw6w zGDxbLyItxc>cOU#N@7biJXqVYK2e^&z5XAqy>(Pu+q%HpmI9>$Ee-`jX@OF-Xz><` z7bp(J-4i@OfY9RJ7Wd-rlA^(#KyeGfEw}~e(S6R@d!O^}z3+`X?#NhwWUbHUH)YIZ zt@ZuNmI&EdZ|l2B`nySg=ymAAos5(7f02vz@xBtF@{dMeK)fui2EOV2E@7jkFUw1j zLPc%6?#|D0LItLro{a~XW(qZ)gccGv#Rh%vMw)nlDNrer>Tccyxr(D?&j2spcjexa zHG2jk4t*)k({g!xiaTa)rk;&F6iIX*4P`Tt6>00sM!mQbQF-?yu^-bO7K(zk3h=73U0 z9Yy_Rb+AOr%k6SFl4a~!>sjA7$(2ofOlV%&z$@j>z7_J0^s_r{FWuvOJQKWI?cBy< zTsR4@vw!7cA%%eVQ-05wF1Pj8@GalhkEFx!by!+I zSAI6^$_dPlAvd)u-kj3yGRHabFt_FNgJ90XlZQVlx{5$A&GbSaJdIMNy$G2j ze9v}OzK51?s(axdvinrt!&CEmCI^T+esN_~Hn6KNKkmWfcDQSu%19*TWp*4(5Rxd| zZZF=8>*xh{@cT&AXC^CHh%<_^E6Gc@U=hod&8QNYQ#Tg(2|Rn1wE@`eLR*1xw)gjVK8? z9*c&^yf`gdqTAKqk790+9HOnwg@eV1{O08SoNh9_>zk3|J+jV+wE+kt`yZGi!@y+L zLTT7!#p7-KyTTnf^Yqa=Ql6d5t_`m zrJ|&!w*WCBK88&r0o;!b?og0>GpWRN2Fsn%4$^%Mi_?KX)>Lv`^86}pJK+h*#Vm;U zbu6-d!FBS(8vktREoa})awiQ<{gd=F{s&>tKFJluA2defb~Uyym#$k&s=pK8uj#=x zVv^9Su750*5kK{z-_oyfh0o{&_sK(l;ZSl@CE57cjrn3$o;G8IALDlJ<5DcPak_^P z!UJVTEZKuqtsk+h?}%{T7Ba*}RklcCIX=-&&AM$X8}slfSCQJ-Yi%6ik(h+E>dITZ zlDgqBXF3TvY?)C9@TDtt~?JrJ;r- zqS)iaM={>Fg2iy?O7Dt3;lBXyKGYoo+}p?82WrkRe9$APwvhrSMwHG@>%)zojlDEJfm)I*NzPG zvl3t$vTzk;bxjET62rkbym<^lUH7x_Wl$IYLxguibZ@5@m84bt_ekcxTkeeKdG zp1>M>YiRfA6^pKx2G=8_CS#`u*JRwBPblX-p3@W<=lHUvn~7;qI`@S{Ew4&PU*xt~ zcsUt)gv7mt8-T8V{Gi>L+x@XZr;+vmNqCNqCUO#RCgh&|75X_F;)DG>`=jG_+DC4fkIRnRaOY@ z^}aF^#AjpCPIC^*l4}Y;)wL}-rc|HKTpvgdIOE>oOSm7&;X_oAQR>4{oo*}Ps2I)Ic(f_Yl7$54qYe4@4AtM$$rwQC%eT3HV(F>wgbfnG z0nTY_=v=wp*+#%w&m1zVgfYAT_uBC1!k8)Z zC&@!8bI#1_oxZV?n`J<}upG-k;IQKYwCkfuh#lA7X)(XsI8eBZ5z^e5TGTW74sRZ$ zN7uTiGWUYa5q$Q{%Od7=`5NJG>w`zs%gM_8L?yy-v-0=PXI zi%jemGFy@(7*cF8bc<`7u|wW5JBpyIBp&PY^r*>(PxAT}HH>z{t6DwT+Z`p~(%>F3 zkbUGNzQJHD>6uymd zR_gSmj@93NT5rK>hye&t!;D7r{>{oqQc zntp(-@(8@1>>Uedao$cA(w@ECj*?Z_xOy;NcS0$*y4!9`C~>evlpF%~xag2u`!3QT zF|dV<&2OJ)&PM8OkpeXMxkRhAcA6(U1^JJk(p2=OwZ>Qtiw7i955x7_w5)t6+n1$q zA+bQ&lcSHvHHv<9_{oK;2+u`I4z&0XYsgoF2Pk^aSOkT`i^Z8EF2&Y6A~tZ6mos~r zgCL2~U^QLAjz?i~B28Qy*UHz6-PHvm5w#e^>e zKH8%J=EzosEgJ4k%oFA@353R@YJRh`%2R+8FNA0Nl3%8zz0}KA_7R!w*6P@~!yc(y zuQ5FP$Y{#_4foUZ>$R^VmIoA(MKV%%n}sEXZ+=((iZOvxk1{HLxHPs+u`J1jk&O$3 zJea&tpSB&ZW;E1L2}ka(Yjr2O83%V1B2Qro%dxDbYI@H6T1zCSo9BxSupPmRT7zuS zjr2j3i(%Bo3Zctf`DM_u^1*F?A}p0^eOCSOM$gA2kOqnzKIl%P99Go66t&8Xf5Qyi zP!*Q<*~0G2YH<`hY7^_ddtUm~{BV!wVuFv|LEU+i!)txJ1^;rTdK7*wSuS(3ocA4BQsxwTO`{Us^hr8nl4S~t6GHu944ro5hg4K!iVd(H6qm!g4u z_l>QtZBDOsocNt8Nl8?8F0$bKoB>%%obB;ORAdnyWNi65-FK_s6+C@!;3cyEu6+32 z_5igLKY0N)iawfel&LxlyMqVQQ}eQn-987i6zmzTG=-dRcZ^<){Ah8VEbnWbEb;a%vo{n;8 zacXviQ$$JRJ^5K-=NH_t2H<|u`He?&j_p8R%$RW`jQuO z8i`JX2_0XiT4F0Mesb3j(y=|x7bPxLrI0tuLKqgbgUFDqz-P1;@92E<@US zCm9nx6rJBxS<5n*)Te8rO)`(%fj`jgV;?X4B2frc0W3iASL4`V_G=Y*A5%!E%aUdFdi zQXLJgC^mT7hR;SzU`$czr*u>Nc2orY57 z#;Y;FR<`TIZS-)i75FGwyh5<0s6g@6UATV z4+oC*ATGLht$%guFR4_N+$-*UQOqm~QGC2OY@_CuQ>+`h!`UE$iRYGyU1ya=O*CtSV>aNEJ*YjLiJ#TR36?i0o!(vv~!FAUdD{E?t6lb{n(V2Y`k zUqKP`v<8bVbWa{ekOVP!n>#;HFvniXEIIO(B+!a0=+fTxC5yO7Tg34&mkxTa# z$^-S3E8D>~TM;r=(y-qCiLo$yx|9LAIM0k+d1qL%b=^Q&iNlW`jV-DZtIbJ9);#l3 zxct%@H8raEOd@?WOo2IP#*?FQAnUs)Ca1yZJlsGeVe?m|%+)Gbe;Yq(%XnW8E&z?S zy|}>h&C3c@28CAQ8(T7;q{r2wk|o`B|gX@+E zMgo!Wm!gyWr}GyVmiubY?8#6h+oz+|FIz89(`&YGZ{BvH=xm{KOzzPmr{0@#V{lk( zh)@jXLur-kQ2%7T`Y1~F0CpvrrrU9ZenMnfW4+knOkEMd7J8zmyrxs$BpY|c(UJ~B z{=$||8juv(_ozIOuZz?pD>;j9t8uHeP8eIX-#^d?B2u9BenwzRE}rQNE$FJSWA8DK z+*Em^;>23d)q=cRbiMxZ#niE%-vXLk^wb{&697=JI7=c_GcM)vQ|$*b$M-=(_Bv&3D^Biuhg46n1gNOpqh7j5(D%I8gOA!@>F?yI z8m*R?dzSlXg?csZK8Tf~&_AZG(43IU2`qc5HjzPBnb{7%!p|KlZaX#~hRqJOyvq29 zXmShK5%E}?;s?7kPNt1+37@4d^FYeZTN|>qiAqvqbMg+4akTpNp-`iqeDuMcl8bU- zk=-uYY4vOoG(H=?e2B-jQ_bOVY(9T?!>fE3XJ%$zfbCT=>lC`nRxSRup=~@Lc(BbX zHMF(dmhB>Hj6jNa|EE32)VXPo9R`$<`?YntlhunX$*WPyey)qURa=tvO?}@qtUt{3 zin-H9U$AmD4tD;jc#o}Gcehe3#$k9d#N_J8V%##@PkV(pev_ZPE)Ukrl9*<^3IUWY zhD~xEbit0tYrXVq>W)elf2PAig$Z7zV!N{8!yivd57o7%A{3_u52@Xaq8{D+KF4p&yo!lrW*5vUl$}(XI(xfHSe$eCWd^)( ziih|n<)ge#r{xu@2L=pE2c8w{VuOCF3TQCPOvh&=1# zmdF03H7r>b87&dilR$Y#z64Rn91CvYjMX?nMl)@<9PYbBMRglBIT2-#xk3F1LcPwe zWK~O8Lf|*A_>7A5iUaE{7p@K@iD6|j4vzv0ca3p!@ICglg-LC*v4SSpQ?E1+f={=;yqRUy$;_^A31f9dzJ5ONx-Y;LiC8ll3 zX}L`Yr#!sw%G+&dZk+94P9bI`_(?tPZox8c5;D3WS)Zue@w2~r14fq-?=?7N*i!zm z=GQ`r4bfA%$#pB(L$JX=5px3+|ksx8dt+Va!?yts1mRaW&s6HP`P=Cmp z`=-fU4cpWB(*rYX7CTU5OSV$NFB)4_5n^|f$DY3P!4Vu*ihkCcLJ04nprJ%}f9h0j z(B~g-Dcn0;jVCVEFhXuvyzPq2F%iL*? zk58wyltvOQxVXh*2oKq!F0F`&M@$^I_ZP84*F~WcV+QvMyEMK%*2Y|rCOT5$%(l>i z3^{_z+67*_Xc*E}7V>t4U-jPidP8?rcAw`i)fDSv@xYCKAfaU<^Kh76k;8P$P;V{G z%w>Eh^jURE_QmY0j0)~{$&tz2BMEV!-GSjY0S-d8N7txffYEB_7lNb+ z!T3JnCmgC_s5g*uTWyR?;#q)>a`lF2ptfkOicH5hAW4}xDOD+Q`o+q8?acW_>$U=p zqyH)m`#k=1!}Qt8AnKuB>MN!skNMW4fN%CY<>aKEvr!+`nnYp+dw#CgD4*wmc;f&G zONrcIk6JI4)u9=0B9#@zld4DTMkMf~EwI^8gK$JF3!Hb}%`GBcZZ-k@5|GxV$={Ka z9@*5ku$ZP2InBwBn+S;1soC>-uY@TPmJ;cn;zReIm?J|-S>LR3SU7Fo?Hnk=w;?~+ zG;pcQ!bZbWVy?@}7OG8QO2N%rdeu+IErSjw1)*$*$Reo_;(TvAqr{EDdUH^sMD#oq=9? z$03Ug$mP_lAwrxm^F$*b6kld~7M!Cd&&G=H(;0r{ zm{24q7Xu7%Gv-PM{<=QPSL-;j7dDtX^1h9}-B%OMF2dBm>8Y;Ye_qvBXxtR8pZFwH84|jF9dI2g8Ke{cVw2J`a==n8;)-64? zv+SAVks(MJ6eF&!?RijF`i-L6t96R0SsXFIzUTflRcMlb@aV0y-pXJb^}z=XJ_ib~ zg?@aq(-Vv(JHlm>3pmxK3rQX=wygfb%9x1vMc3S~669sJd&XqFsT)(&tg;f~C?V|0UNh6ZV>-oe*3?0eYc>8#QfmqTDdOD*dX!lQ z;697aj?ggzPXa?IsXW1`+or#4mwmEf$8CKghaPZGn5cgkbm+DEPn%_5ZAEuBo%7|6 z+QJP_E;(G`hKtHpA5Dy@P&0dPaE07#3p$?cl0)ys1OhicZ%iD0zdG#P+oG8YdFd8>EQuNmZ<{7OLG>1D)aj-GEzy`R>D$SN~>S)#L?)6;M5#V~}?xI`Rn=(yG<-PP>p zA++ta$p(%{8$?ukhI8(snjhysoEsyPGR^g zXMX%0KUGzTmmv+Uw#ei&Fzs9lrKWsc-8<>5e?DuOwX-OK@zPw(BI6T$7)Ppn`SL(h zb)tzbcD#N;pCKet_GGaP8aj!fXFd#F73n{XTI6bI$*7V-ZI=-;ifidbXmM@h zLn^>GJNJP^{ZA=K>Jy;>=l+JO{*;u4y@WcKYJ-)+@EMK_4V(;iLF(O#A}{-{bEg69 zL?iJx0sQ9#C3=pa)*Yy3*aj6+c%np~t1bVJgK%?_z3Y+vp+1q!c4hJlL6L7=`$|8eKJq`_O-|LpsuF6{5e{q zd0AWoB4~O%_^=9ewo85U_NL?J5w=1MJg7ZUUq^H%?r6Gb_qk4UMWQl_kqf1kjrbYN zrqQvf;3n*tXBgmORw0*!pu>oxSJ`Z-g_~aQ?w(47kdl({oQ?o%hkFKWb!BJSPD*oj z#_+icu35+}FiZA>n_|=WD0YxjH`7n}@o;PzlrmZCF#41C!CaR1}4Y{ z8z^IYl_I0m!lV>G>S-9S#=|cccZJgX=~YWVGHIzECDIZwJ$3L|lH~~z^EG?w=hKZ8 z9&W?E)#`YPpOslGcItYGC9#LhF5t@z>eWwW2aYTC4^S}5jMD3Ux43!i;oA@DY|*aa z4KTXA5*w)|kwvNkS(=i5=Bo*iz9WQRok7QsW&qX6W~f=86Y>2*%4 zCpQ+GpEW*kGC*NmynfEGsysAgMz9QGnmqLM&qc$jl_ znH8`SeE77g*~>UVASP~it%~R4uA)@yC9|GzJykUkIJYJZf*QJdgTKC{odfBG6un&B zCW$FK$LrN(nzBQdMqMZ}JYIy_{$v}O@y8Gwx=hJ)+(+S-9$lh2oq;pO z*C_@^Lv>3;L;yC~{w{tpUR&h>=A6|Dnv2xgsRBF(ds?QO#}hEe2iIWa)OnE2J!NL; zufd6Uy`JmDhU;wt_Evcu9~c!#E-R~j@yndPQpSH>OJwRNBe4TyW&1>7Ts;5|WnsQbKlb=+J2A3S1TxG!#E>MO&k8%7A@}Gq*Jwknrd}NOsjLi9 z5UI?7ZBKjhd-T`F8z;w$tv%tkHGIubbIGYB(b_7v!~Mg}LYc)zOgFjv;zvkEH*oZs zB4yPMW4ve=Kc=a^Jw#0O5o^jX^PwhvhXIZL^R-?2lZ{HgfLI5!DE7&QCg3AxqlxN% zddI}O2Yhw2y&n5l{VC7B6Kf39rG5ook{z8#3wJnG9^vnC9uPSeJ4_>(_??bN$}0v! z0vd9yCI@!a*^deta2Bl5gj6JT`s!)g1nFVR@m!7d(e}W;m(W!;Ji_mM zx}i~~KM4iUC4tJ9+Fk~Wn%QWQmaR?1OU_e+Vxfm|6%#^ou7){NC9SO8KVTJ|C%hsH z^}MDB323D>E}}EtJRxW+_AS;XekG^4#}$dN!L^@M zht-wt?xj82!t}B-Y+GiAqS~_jAD*vlu8@}Z+5^|_?~D&@3yU^*9ghV1i9dxq*+Yz# zT97<^2a~sQ^tk+!OarGI16dYrs&`0G!B1>52H8G_rAgU1#bmH)1b2!i96&mEkidqA z)Q`uuD%(FvBGt0ejy9k_^P5hZ*XGZsDpv{iNrSI+3wjhy#zmK|3j}#36VMB~E;IV} z7X!`J{h+=&rqP|H?)T3D7z2;GRftPZm8fJ}r#en(>9^?=D}J^d*PwNa)s2{n_z$y# zS0P!9MZOiI8Fb&_E)o0nHl&xPTX))VC1H$)ud$>^WycNyj_sK|e4B%Vy;@+=Fo(+` z@qj(y;7`0~UO&2DuV-gy%-WLB2-yj=_)-oYHTOJWWV6w0d|`m-@YvZVhylpd6w}nR zi(d?yb|>|dAs!0bsvWsD&2%J!8*d)jP#oI4i0PJRo&jb(w3|ILO<(=_9UR6c0`M}C zSSX$}O+3o%nd1k;pgX*|({sWSJ2=&qL5Z&53ipYzXANeo2D6cT5sGHgXC=-%_MtVx zsZ*4c`ZE`wOeu)OEG6$xLavogp?2b>UC~&z)Jbwx5Wu`we-C{PPC0xnkBBTuI}uNXZSz<@$4S%+mC7$IVMVU z`f-9(VYjH7Ti8fmlOwRmA3JYEIz5+5Fl-%t**B<@^9Bo$Gm>QZRo)6)%ECM3b)$Wu%^ooynGaYHb54M^R=nrG`I(u@g=i?`embp6whyQy9A4e?q;&RNqD+Eh z7--1`@D>mSkec&-Qaw`B7oKWD&t}M7uI7m3?ekr?L(&4=!vpM53s>r$6bEAy(OJTv z>BaM5hE~)9R ztXZ34Iyrbq5`!R&iD9AGhnH0t#5eG`0Gy|mV^x>~YA$P6U`u{*D)^c@sHPd$+@8Ip zBy{t;BU(Fm&T#T`n-IKEiD{hA#>*ahaKfy3Z3A5iPVP+JK}T&ZRhwz6qEa4JRV49Hs0?)JFGKH|{gi>4hCHzBlphK<3+6TS>XRk?TE135lX_ z8~MRxD=Gc<&W5?fz@=5ACHDqglu~<373!w|MwaH{P4Yrr1LBKX;x#2%F&caK3B6?% zus5@LXX5(}i1BwBwZ8z42)#6xRIFRKejiFVWz_!9>45)J(Y62o7|7o^!;gQ`4FAD_ z6fiOV6WnO$>|pZ;_|e3e-PFd^))eUE$o`t`H9Os(vQDNBwtulB|E}=Il|Ln29WDPf z3kHMPz+8VAz9C7zX4jPepz;TFlGPIE=wt{qzM(k&@0gVTEvQjM$i!H{*um7$3FIL1 zClOJI{cmS~OPH8C8ar6p{YGPos9IP$(*CpKXm6O0E|xb}Y5%D3O=}4>b1-yta&R_w za&|DKy}?=9fq=iWL+c2lb+RyY`mJDPYJ79T!PLyu;ReBZ1G=RB&8@UFvoxmtGlG9P zaHKUh1kyS>8{eQK9nG9=Y~23giS7P-5G@eoL~CN{aAWS~^uO$x-uU?|Ku20^EZW~He-J=v#sAFrAD;gqC}eZfBl0(-)0-$w#N0#_oTW^i zSZLM%$wK91d&9=V!O6kR_L`T4R@~XYSt+!|K|rUQTrJTtAkF?})6(5^%pbx3_9aYbXlHkm(mxon>@Gl) z{{YIe{&Q;mrrQ3+k!8MV?;nWM|H8$;xUc`M6Ogf!=?y&g1_1kCXy0%u|A+YgN7aAU z?*HGa-_*$b->Uu#1^eGN`G3gkf3Rx*%q;sKBjIKk-oC?n>#u?M@66%QEI z|Bg5NcSYfwG5zNp`fIiLC&2eV?fg4u^zU}UZb-Ht{$JG5|J46?7Q^55^T=-ff0G&h z)7-yTLjAir_ZR<@xj*Zo{=?v33I6vz!QTxw+u!=X-y!^``+r|({_Y;_eCxkjc0S5s Tw+{N literal 0 HcmV?d00001 diff --git a/packages/Microsoft.Bcl.Build.1.0.21/build/Microsoft.Bcl.Build.Tasks.dll b/packages/Microsoft.Bcl.Build.1.0.21/build/Microsoft.Bcl.Build.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..5c71879102c712eeaa5a823dac6a7a1a4e090964 GIT binary patch literal 37072 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 + + + true + + + + + false + + + $(ProjectConfigFileName) + + + + + + <_FullFrameworkReferenceAssemblyPaths>$(TargetFrameworkDirectory) + + + + + + <__IntermediateAppConfig>$(IntermediateOutputPath)$(MSBuildProjectFile).App.config + true + + + + false + true + + + + + true + true + + + + + + + + + <_EnsureBindingRedirectReference Include="@(Reference)" + Condition="'%(Reference.HintPath)' != '' and Exists('$([System.IO.Path]::GetDirectoryName("%(Reference.HintPath)"))\\ensureRedirect.xml')" /> + + + + + + + + + + + + + + + $(__IntermediateAppConfig) + + + + + $(TargetFileName).config + + + + + + + + + + + <_BclBuildProjectReferenceProperties>BclBuildReferencingProject=$(MSBuildProjectFullPath);BclBuildReferencingProjectConfig=$(MSBuildProjectDirectory)\packages.config + <_BclBuildProjectReferenceProperties Condition="'$(SkipValidatePackageReferences)' != ''">$(_BclBuildProjectReferenceProperties);SkipValidatePackageReferences=$(SkipValidatePackageReferences) + + + + + $(_BclBuildProjectReferenceProperties);%(ProjectReference.AdditionalProperties) + + + + + + + + true + + + + + + + + + + false + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Nito.AsyncEx.4.0.1/Nito.AsyncEx.4.0.1.nupkg b/packages/Nito.AsyncEx.4.0.1/Nito.AsyncEx.4.0.1.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..5d460d40d0822c83775d2b0505623a908429e9d7 GIT binary patch literal 953527 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

(b5wuF`I2seUk^KlK^Ps>WO?ubiD`ydL94J8bvm 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

3nZPteFlF?rABs1|Ogh#zV=7xsy2#0#eE9zxh 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 u^pe@c*Wzy`lao(K9{vNl48{j>cpU3l-!r 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

cELrvKLh2fw>tkHX!y#`qyFPme{(t6%$ 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%0DH9{n<~&Z}FtlBueOz%-`be z75Wl-hPQa9(@fj_4Pvgh5NGf4J0+sF`5xb^(v^g!1MLYyOWEdxZQ1YfFJw#>hIact zUp8E#53^q@I>3z)ChfhV4|wMhChbY~0q?KS36SmszDJ>a=<8Z}r;#S@y`m3!pOGf* zN%kQhu28$UoRSauL4}^kHcCF?%SM^BjwK)S^`lJM34pebk~a9fzYm}f6`Bw@t>hE_ z{U}+Y*9}C|PM5TIpf?4YLSGS@e}+U4WpB&=gtr?l)A{(e>`(bMqfHHtDfx^)Y@rxv z^)HOJ_4#-HjzTyG`#aCAmvUkc_IJKQA?(4v;9D%(ZtY8cgGJ-)OMZ_+1!*yWRy3H1 zv#;dg7WQ-kuDmT2vo3R|1C7nR&w&Q#-N(MR(0#dk*+C1<&wG-6!#6cZJ6o4It>hby z_mL!8Q1TsrjL=dauF?O&ePa=Q92qo408V`&m1Sw z2FU$KzDJ=t$o(gtJl?j?pLhog_4oY5%Ozr8=Imtu;++U>@qHXxUGgt}qN3r*{BJ%) zq1Qv-B>tP%%b1Yv+LE97E`>f#zPaQVzK@XXHGbvKDV`Ul7K&f_s|w9ZK=ihZ={qms z?vh{mhlKp3D8AGy9eI`@ zfEEz?m`|t*vw+w|=x?#V#Sbh^5eF4YN*Gw0Dhla{-WFdlyj@EZ9jDkiq>26(ssmJS zq3@H@#cT`xJ1IjfmB@$IlPT6n#GZf>Ws0j6dK9#jDRwIKUAsS$GR1BS>B(7Qzd{Gw z1(LJH>lVsP&JiCebW51CT=A_!H-<|A9g<~W8*_%0=88d6CAzG5a%sM}aH>f=zqC-? zZqb&Ob`WnXbX)1=rNts)nu)F~EfqZ#I=yszsUg-`=*rSE@tH!4OYbNRiJsF<^iXNJ z*kqxnN-M=d3%yfXE&9)py567px6&GMib9oXh(;>(ufp#DH7FFDipWgYGx29YlN9Pw zglMKhvl0-^Atd{=8gYq4?2?=gz8bMr#f%Fh+GcSEy#tUYP0%hnws*`O+xCua+qP}n=8kRKvtyg@*f#Hc|2c8vvLot= zC$h3LE25*SQJtCYOM*JlHG6d-5ZGHHuNf%3bG8i*ftbdBnPYMd|At`4=o(grpyQB7 zu%n&HbF7^Z|IDxqQ9T6~sRF{=-uo}ZV8KSN8dh2KU#On7doV`+>D9CECL1vVdmtgM zq&o(1=xJ0B?YI68k*h_sQe%jiLc@(FTSyG>zVQ;G*H9G!HWR zMefUjz2Kq|YP8Amisajj9-&c+vKR!EO%%08<5+vJu<(*tv^}k}ZONXujUlE*EKpsR z0cCPBO5>P-#@Wo|dZIPK4W*F?Y1m5%Ec$ii0oV6vMge8118(IHtutZ9>4M?9h&^jT zg8L+crgV}cDrXxN%6tOSNZxuw&U~TB7AUvmVAqx+RuyT;Wbc--dsd@FiuiC-@g$LU z!8Y_9nhxp*{Tmyj22B0pccj_VSZAdn)DZhL_sDRHrZPASShNA&eM-Y(L0a&IHB^UI z!RJ5pti!CfvdHfdu8fr^8x5u5fJT}1;}K;>hnAdo7DlbVv}<}e3q#uhMxbtR}SCDGwOJk%x|szrC<>H*v+3py10Kz#|u&pO192R=4T~t_`Ym`n;*qX2@uWb^I z8_kp2OzTPeHec|#D0Jc|LJf-d^8SGIp6s?`96%Yqb};|w?eIrpq}gWeUZ=@v*bV*C z`%;^bh^)Hhf(JQ#wS!OZfLfV=KPQKNKy~uU@MLJOBo8;Tuq<1U1?Vz9&t+ zWt0oPM;Y~0bu4&WB5ZB8Ct-roaiC4{Hk0DGP0Tls-eFE_SX$6c|K_Es-6XPyC)OcC zw{AG+l$&9z^<;=)6OmqQj^hJ5o*G^pY+T#Bh~`wTUTt`FI5?3SX#*4UyjUMKoO3^! zZk9~@>z(8-C+$h~%<*=UM~i-9cm~EM1nu2X4Pj!qPIQb}cEbbArYg$Sv{2&R?aI-? zx6sBcE!+fQoz&2%P{$}O@)CyiIITfyI0uFoGh5lUeATM>T-&qUeLBH5#9fN;qF6Ot z4sEZ!vl(rVoD!=@3#CRp>Hk)b+ zJ^h8{$XrV`tJwRyZ@EgptwZYtdlX?)XQwpK+x7( zWa+rJkiz8D3u|uSGIF(vXtxd7;;FS6>Jri^Ff#Myj>O(|E)p#Tn}!7U8oSQt8moR8>_D_e5QO)F8j7ZM^Cb zZ)@8w)Sz|J)myAYlG8DI8*K=EID9A<4}Dt_z{A!%c88-z$U ziYL%=esSDKQ+uLflUc(vvFYql=@V1w*QDD-^K`AvO-c_9=25@gBDo+h+3F_?bQE2) zRw)v$WATvwhkjbTH8eD@Ix4{Y#q+2l9szK@axS|nyfC;uF$U4 zn{3veBY&wSW!I~Rz7LI6UNUWxhf-o+`ESxs%QrbhY&2YB{6d3&7IKYPg8}&dqjLxl zL`2anpS=&RQHJ_YoQ3ulVE#-U{7%?8Wb{8Ow=IHg1PxN&wMaEbZqPcQqKJDYz`&MhLf93M-Q3(=^#sbNFh+L>!rG3)xwKTh~ zeG|FaORrNPKe-@wTAv~_niVz`XEk&E zkz&tm!ZV4BtYlknc}V|Rm-YlwYy(t1!7g8oX17(F^l_SIVg=p><{(-G?yb4FXx-s7 zPcWOdBcDho`3ZiR*)}}Bwqf?HEg$dKILn1YXPI=Eu?X9)^N46sBGGPG&)d>^30jko zyvLL4oaUl#sB~yM$Yo@;=)JUvuao6pVmLvMeH~J&O_mM`qBSz}b8g6ZY0@Y)alj*Q zM|d?uY!SfBewMF0gKs2RymuaND4)7@e8plOQ$wnhxOB+ox`uOW-z5Mz)=Z1?@+XH98V#OILub_J=asZ6SzO>%S0f=xJ>c>3gmyoaD(B$w zO>^ij(?9V?oEq(aN4?Zr5BlYd&s@C_l*Ab6e17BL?yZ%7M|q>1(0zT=wFEFd^U2--9e?S%oU|v^%**u z7UPNioBQ~-S$A81;NIeoa^hZ^a1ofiMfo81t70^N%JWloE#;>7zv9Z&VpCpsstz4L zNf)9{O5)tWNUh0P2^x0gr}@kg`avVEeJMAV!}k+pR?_3LZ}EDa?jcu3v>SG7ge{o4 zOF8D5+WSJM3^o1E#QR>w%XI$Z)kG=w=E+!(BI?mXu)zn|!!)Kz?g9E{z~Vgoa9M`e zpjc_TvCdyd&iU&}wYOfUqQrZ^{_O@Ai_NvWAfKe*^S$x{+C^3}Kdgh&ar_~V zAaelPSBs7YMuYa~HJ@O)s}j7g4Ck_29j%{H^JVWOfKTGHuF9?S8&xxcsbDB4DDzdcwL)M6D(fL1kk( zmR7T=ejtU`NAav)yS$!w@D>3tEzgU)=4LV5d}Zy7U`l8u&ooW8<5B`~6+QTlTZ~!* zrc||*OVva1Sj=kTydsW0Hd)V6_duLR>bz8F}(hp2QSc9 z@+9u4O^*ZJKUb3WjRrmQH6^Hw?7Cf1M>9Q_$kjl)<6Fe={cD)}WPKR7JGv3&QgqA}YQ}wj zl52*yRaaG*mEz)z*c5xEvOMQA?m$Dg3278avcD=fEcC)-<2feYqkKEs`PT*RdS{uj zONKkRqSNttLJV@kX|`jur2X3K8!?Y zx_ektY)_p-H%vcwNnB$FYn%XwuTx>{Rn+p_=LA>BgofDj&uFep@wSeu3Oh4@JY_7; z>CAF<5NM9xd{HIWKnyC(G)j2gpH|IPYg#B&wW%x&jujA(E)>90P779qn4li(mX-G# zq6xYEYM;4nyRlXn;WlFrjPg2IsY?Sja3yZz9>PnuBwX61i|mbanfBGGg5>KJ)bx&X zu6^>sOmzgz|3;s$H;KJ#im_R?7Ffztn3ouw};KTBG|Ww+BrHM_Oxp%I<{v%#CN^D zI(N3*0@ZYWj;-3x%8rg5FJAZg39HGtYgs%$)$Kz>*^m=q0m@9K_`jUy82^1}G=)T<4sa9{ zl#LtK2s_qisShf%!l7F21`={9#|Dz)-xB{Md2WfNP!JM>gGm1B?X_~)XgZ;7gZoA- z(BHyl50V@+jB!dkA}r|Ol0ko>^md=7y-ZCh?D0tQh?OT7P6q9);U<|Q#v#uzMwo^E z&!E8+WaVpqIhU4}<&u-+#yJF%WEXhm?s@LHiGQNVEv`}AYNapy_Ne-R8{-smoR;5a z*5>lfbJE=NqWEzz{o_DoT4Rr2>O)Q`!i+SR-7(dXSB8{NhBPs$+1h~ zJ()v~M7ABuOxDmn+g6T%lU_)yQJdKp{%+k$&a&BmR(!FXDPd zW}{N&>Nh91Gmo7yq{M~*%FpR|$yShuk!S9a3W8#^Q7FTWENz3=}~h4-pKL4DQrG|-I5)) zQcinOv0T%b+|F}~`*>s@Z>Z+l1|K6y$RlJ z@BkX{J0reX+ga>zJTBu5H;a^meM+Tppga3D4Ccx>?rc&a0mn_sm@m>#(KS6!-e4Eo zpX-$?iz>av?s)EOca~E()9bPfs#|bQ{W?pnCy0S@4}|b}^}Vt? zvy0e>g6~~)bt%4od6n-YEVEZ?0+4+P0If}a6&?M3N_AZ$>}I~@9qX%ePb7UawC*sw zt(o62yK{Z8Kza}|RcyKNzdsnn%Tj}y`2!tqt1W`R1#eoxK3S)*d(gJ302{MVE59}c z?AiZ#Z(sp@zzE1*QZm;da);20lPn9IuT+z#cO&PqWERSXbHiRc2)y;Zzg_qgj&NSk z_PzHns(uQ;APu=v=zX+-`Fg_LQHGV%)fZ6z8^)qL8jrH=v5PP z;=uDnSQQ4C+1s$(z}3V+RFp@2_eZ?PC74)eVFE>*tm~A2x4- zdp2)x0M@cga9+!NzZaEE_Pmn%PZkS-fxd-S-IW`wqc!ZOIg1E8te+VR0kDWTw#`X> zLEp28D77<#XW{bwN^I3ygau(5zC9yJR}zrMf$=SnTmjx^PQ2b4j{z zh&l;0GIsCbxQvqIF1SRSMjD}r4KqeuW9H^-mnyd>KZ70eiWKJ+%*#1U-BPbGE8jON zhn2!Vjv(eLKC&zUss<$17f1jWi8m|~?$dor?Ya!+sVq0ir5JG8J2MLuTz0z_IvDVo z)Deye9Q4@kipwIPR=#t6y6&+`7SpUZmqRNS4?PktURh_RZFRO7@H`Xe1p!W#fC21W z_8XSEdx)NLb-;jjGaXI+a>%@;j=Etr>_ml&LEK^ogIy4;)yD2XQjck8-SoXqkpLaf zb!8CAB$;H`Plo^sm$v!_L`mTX1V+zPTlTol{=mAevw_WfdCO1uFMQQt$h|xNl4}pF z97@*pfE$*Zd<{hk8mWZ>73tXkTbyEzDg2I*qV&s0hM4mZ~hmiZ{I0AmAa!AW_GOXGB z!XlGdnaQ-`M0W8qNAZ5Ej?GBb@{Y9MddU611-k5%T;dP#P>%g<@{cZ9vy9f$_wp#Z zY)ZNg`(+N%%YEcf%xnNM{~QXC-pUiOx6lUSO?qr{+^IO{U*bc9PXzzc2S$HAMux|# zfb!$$PiD&@qbsn!QQ($v$9hD4d2a{XsC2?4{%+yjm-_{{mR?X4-^HIu z^1kc7C^zdO5B50h@TSi2)+;wxUlc3px6oGsacGrjX?4Z-<1eF_HMPz%l$?L z)FLfTP}29)1#(Z=E%~zX|M&~Kl4&{?FQ0*ssy<%fSv6BJ65ay0TfP1l+{oY0v!BzymR@}cb#7g28hElfoH}s5Jyk_b znB{wb(ccG_pgmBN40R4)odaL+!=P`5-kT$M{|vbxoA~2ASnv0T$-uDmP;~dONeQ~B zF&L1e92Xt0-0l3iE^3boHqf!i-s!s`zQGvp5_fFa{9tBwLgTUn|I5;D#U)A1e|9#? zTdqZ4Lfb?)s_|BODn4_bjAYVW?y%bhUB|Kx!wxWtN@`cwPg_qw--6!a9>GV-Zk_f; zo-40fx5#<@jx$cXm$`TG9(>om`rqZYQ+ld<#C-VgSW~ZQ_%(e?K8o)usgG2Qsqm{_ z42Gq@9lu4tUB7j|^Im#S?8>Yw;ncRZUYp1D)H*6!RAN+p8qP8*cmp;-jRN@Lc~D;@ zcVGMZ&xn^0RsBkjhBKpBzqNlM=0f>Wl`V}}=2hxwJ%4rdR(RE45u9t5c-u%0E>^tF zy>*uGvR{@iJe<18ecwF1m-^Xy-bZH${-PutX84>R1NkP-{3RJss{LlLT!TWFZZIKS zZ69U95I5tm(TbdB@#johfzlLoRHZ;uo7i&5d)FG-#qe(#hD~3)I7>LfZjXRAAs3+- z#=!}C0>54$jdz9-f{y#MIsA0N#Fw>KBVN}!GEyMQk zDAv91c&qT~re5TuZFs|8_cTo4X@!7$7iCS!9({{9&hBFr(ziG9fZn9Y%hb~~(1$AQfDIZHWJJwPrP(KKU!3CE zuLWy-aQ=?ncOWmV8PJa~>TgKJbw3dMu17QU8V-Ij6y5AcsVGG)leD|Nszy?&9m(cT zs->r4jb2c7AJX~n;eLL%t5#S^h3B%XljF;9zu#puXnR=v15q-%{;h1vz?&Kov;3_H zyAhHHAK3l9gzh78H)_GHli9#L^dY7oJi0#c5`B4fJj{qYX;8>B!zJfH-=v3%$;+nF zIgEBGDtoPGD$GxgJ;4gma3tis=bgyqv zO}ppE}+uD?)g6a6i_}qYxFNy z6|_F;K2wQ02?2lR0JT7!OqgsnkRd&zY={>Xpkj4sPLkC+QU7y7g0GroX@7Q*S}<7W zls-MA9teFw7SK(^b3|x13*bIb{Uwss5;lLgK;Gm%x;iUGT!;xW@Z1Wj;UxX7A`Ws@ zpbxHO;$ikaP03r_RVm6IP;{lp>%i{hJ;)bsn7vW?5>$TVtQ-7hU4JDOZv=jo^Fgo0 z767m125^hji?wfpD|O#_(*{t@G6ayTg@M0TGgKcREri=TqI_gHTljOqFz`rIH;|i^ z5D+A5HszD~JJ5(h4AHPxGj3n^I@ESE8;m`aDy_IM z{=!cT|2RuT;E(JlX#dh?v70HBOOn3hW;tMQg?G5VYpXcmkH1fx{(iN*2sdKudBENh z?;w4CvprBZ1kLooUHPBjeQC|LARh$lD?ndKPb4iZPdjzZ&9(bKf3zq8`IYd3$|voB zog~bFJdE3c(xmyp*9rPU=Iikx)=7TR#xlMV{WKq3qq{Jm<8cDuY;rvi4!tkpKJ-_n zzK}aK|LQxH3+`7V^9&K7;*eI<3F zZx-&T{PU7l{DT*O{;n7^_svXrVEgK@Bi@i7fcWdh!vcS`TZ6ucv_tJ;wPWt49iaH@ zrA`2Sg>>QXsvW@i>!q**J;d8CC)&yqZdH+QSrcu+CD=|AZDq@Jc(9%x;m%LB7iHZ` zuxp94Ye}$gNU(E@v)6)eRsAA}NA?#phTG+JMA}urf^^T@guNklgt7!IJO?Dpo#O!U zRoH>NXmn%jT72pN@z*{_#1PqR!Z28ELacWY+{o+!?Pd*M`rDyH0$-zDgLbJ!1NVq* zg1?|UVBWYz5RX9kKVxPA;j?-IZ=3DDGZ8Sp0e#gYL%2_xLtLK~##>dsU>==ss~wtERxAd{}o(IRB`et+~PR+0JCG-dWU7mwO*>GF*SIp)ASiu1I%X9Jfk)%kmiZ z_VW^9ywuf;V8V{H2+$aABFRbY@oz$}qIiL>?wf;9<9>mN+C2lJ{|Tj88E6KpDYmB# zI_J7Ut%1y{$Mp_Dv#$<5hXDMl+&v4nV%65!<*o{-#HnevuMS$8@oe+#%W6aRj)1qf z3AXyBodq}xv4YjU4z!}y_OX8)Y=-|x%GzB=Sedfl0$J$6Ftc$aijABOHq2973zXtBes@XdC!tp0^t z?W9rf#MOQWUgKy@IGFm#bU z;@t!R;=lFk5dAwEbUTcz2j?IGV2|htK9x%E0XyLe=`DFM$?l0>NOO2&5@)B-28i^W zXIy(8b>_a-nDv|o%!mM7_w@QdsMGzx?`!qH&?b99UM47bBwuZJz1i)1a5#40v#%kh z-9V2!f$!QWKUfa04?c3Tdz0?n9KU3zcg9}1IsM2Fp5<3XFE@uBJJe+{CQc1Gb!bYX z4xQ_>=~5TK9lKC#h&{GwYO@Yq8oO*$SElYdG<4Y~&Q1Rl;vBqE6m6iLt6y=YcE%po z7`6YuD8fOi(hF5gBYx`6;GLJcFXF_t!7DFKZ`k2;-N*ka{8yWAj}|isuRRSxX9k+q z7%;KccWAxq$Y#%p)0X{z6$2fU1W1x>R5^ZsApoflLk=5Q3p?3ewzKS^Nr#nCF2{b){qyfN|myOh>jdX29bk^%sbtOWGKU7QYj=o}Zo@*3W+8HhJ>rP=6jUp{@nUi z{zR!+w_Po0eYlOG`+*4deua!%J+x5qYfsth1V8LpxT!pzeQUeK;lpo=tuWhv>b|&C zziE`6H@;=vY4m+#-|P%La<};+rkOsRb7||geL#%AhGm)>DcI-EVPx0(ak?Y^$RN}Yp zVra$^%=_qmsdLcrX}n!{i#st~zZYF;GKDGy{q)$6u#gh)h18xJ@hW|PL{>gln8@C9a;DkL3W*Jf&HtX6q&D}f}0`lY>{hkq%1H8Jd1KRs#A)WF2WFpF^D zQg5wBl`#fCoD{S*wkc18x1ADha7HAq({8PwU+n_KFx}~xCb60=i5T+hb_1^{B_SYy z^>)&ph-WIDor z@tX;y$u~CqPUnZWdTJ!8Z49KiNkaw27xN-Z1D>iu_s5=iN4%jbF&fTQ@QF` z_>m;sa~UzC)1^Y4^1lFKI4%FvS(fOv!f2{>$e^6Cz9)Cr8A}RhhMaNI!hDc5cP0!` z!VI3TE6{{hhD3Vy!DV%_w12vpopvlqG4Ra~))J)<3-!{b9^d1s)%5^nu8E(!3yg>e z8LzF$maS69mT1S8X}N_~y{aP-;jgFUvF7A5=<|j~Fdq;{Eepp{u+5d!61hLRmPyc*Ym0LM z5mcM1nq&!5E)e3DRy!8#%D#knB~8WL`H^duMQ_mmc%Pzy>Zg%U+=l8? z%i)v^tgmAckLG8Ceh=*hBrioM8`DcuUk?m0@}t8I@@7U2&0Ee#6i*G|OAaTPC@v4V zh6yA|&OR%wcJrrB24cti_`e(}v-Nnfe9L+wVS(@|@>U52C*;;B6CpDjX&C{`?U)!d z#V#mG=eiJ!Y$HvciwY{8ZoyUwCy};LWkVs+w!7&eBhyLGQDuKkS^hqfkAX#pF)G0W z!kq=Eb8(;jE|(->UbAP4y3LKbm0qrzSZBy=S77d7^yc0(Ci*7`mA&cNx4zq^&cwiw zh=3?G`Z%TA<9ON!^q|O*z!)ajIldx`wUIM8ip?IiE+WSSYwzKXkxp%*@N01(6{WS% z@HkOpB&u4pbN<{_g(f*O2qH9|TU;f`a?VyIFJl9}oQtl2i%wBkgcwC>or~tPjyE@U z-fi)3gL8a50_s3=%P^I;G-VW{3FD-?CC3m~p#tVki>&TM21i#alTK8|WHKq0wjiYx zgNcO1N|g;|yXg}WV?=lRg+1LyJ3p>me&(86%OVrnlMNwl$Yqa@91rpa%Cw20g4U;s zN~)qts-a5i9!q}NM0f{W`NYtjOn&36O@ZD8BDrII05C8pvQ6}^#^iFA^hAd`Q);Z( zkZrtCDI$DnVt&|f%2ad0B^^9AD`H7CMUEUag|iV60lmn;R8&%~@#IKB`AehI82u9E z`6rgM5b`-C`}vH-oXaz`K)JL+YpP<2D)z zj%P||y<2EAps!;e$!r|288T^48oVv+^Hj5={}?bmND`LQV?^|kv~j12N3UCeCV;dw zpU`kfT}=$sH5J>#!7wObW|b%8ZcV>hQCDb^Y0XlHSe#7QBAT@n8NKh9Ym+fb)<~S* zT8e4rqvT`Co1=W(OF23<=Ws&oDL5!m#Zo~NGc@w0hVPw4tTcH+Lf8)jSG2RqQhMO2 zWJ{;ewy-f#nc$+TsT!;C#jO4EbK+IK^XE(#HtgZ8o45(;T|Ij z=wCx*ZM3#ziB;*K%#Pjv2+@=mcYL`hcsPnZsmF7-3Uy8_)3|e&?0DfoHr*Gh|C$4& zJ6_cNi3TVSqjq_0+!vM|&N0*OaH4uC|3M(UwL?IpG^R}liX57CMoJY%3eiA1Gq6Ne zlZqj5R%RcC_#5{e6c8D~VeBkiuMO9^NR^yMs885XF9Z08PZGd79c7k{oE?TZMAU8# zmsLWZ@rOu-D}_ajVa9%yA+UJOZh$47H)I)jZ{x@qiTO@RW%Ki>TS&^$yhfFGxJw*|N3AGk@IQfP7_~2J+naj`x zMKiXn*z0jlW1(}~iCrR;uE9WIM}#OQ^}}@uaI}VBT+FlfohXH$x7K{^`o^mg`gmg! z^f~LD)Ja6-iv9^NsL+$PiSCQ*Rcaba@3$}H1p4RMBD&3+o;ee(H=GqL+g|S=A6Clur^#&`(Nq{G>KOVq zXl|@F0c-MxPvwKrvNUxfHlbP%D)8Brl9?QuE*dtsDU&5)$BMx_*`j@W9}LoW zZY&2FJcOVi?ekcofei(Mms{*s7ZYp>VyYU9^#`_Bg`j0A>c0r)L(~Sj$nfx_2fJAC zBwG9xpwEwIttY9n*@JHStDjcZ7gK+r?~2IHf(yVq!@SZO6lBXJBxyeHPHhZqWa;qu z1JwRWIgp|?@cw*o_gLa!W1T=mW+?NsR~?u!A?U&9xJRmXVrs}ZtlM1qc5~8NUeQG4 z_(eh2ytWcJHvwQ)lUxRoNVnw_`2#x{J8IgL?I`J7HEtml5H9ItJtG)zi)_kAfP6Lv z)eeSPpruL?zXytZ@~ZAEWW9)WC`y-KAxibTf~_%JqldIPLt&QZq?$N|=X;Bh0T6;a zd<2pemN|ht-rczkOC{(Y^x!z5R>J;>si#gN(HWAai zcvXsiV^%b3A+=VUg#n3@2+^2wH!M)_lF=rh+>m;RS)&zG?s`mbwqX+Z(thG9z`&DIO_lZBHLlF`%vG-H!)Lg(mJwR&P7>vv!F2Lc<@ z9M+Ybj%90D`yv;-j;B+xSX(nh5hm>~Xq<43vgTDEH<}!xEMn#N4ATGB;t0BQh6NGk z=_6b^AY8A!RW^~NIwzqf7NJu}qx|l*fB+rbG5ShX$&SMWsmfLlOTqjpEWcuyDz*L)U5f!3=4x4$3 zjqRSAgvp2dk=CJrWORwZ<&uabkv8OR*vEURb&mg1`R4CLpssn+f+mrnei5 zDS^0Qal5c}_gyyrGDJrgt@Ab+?fc^@w^`BAtos|1#V95b&b6Eqq#!bpR9r5Lc{yo5 znj({y`TCz}|0X(pjtD182(GD-77kiQVrNeHp$qCX0=m>1nWMsLuq$IlSA}tK2v`DH^_b%iwN_W0A$5o#|l^cf@yE`zgV&o{{ z<{q^GPUtQEbk-O%>CtX9uS4oj@ymKJ7NTgmq*0P&wr*1@I47&=2~-{)W`e0*Zl>|f z3P|Dc=RHn;bVJo(0&7i&QP&7woA3Yw*eGLW^Wz+;dlW>=*EK_Y37gFuDn5D>{Z*_9 zufIahmk}aQiNq$J43dejH^I`7tguENQ810PO6}3jh*?S^43>0z+>IP6!UGz^kgtoH zlE&7H*(i1G1`WzHo}AV6p~SP^Md%X+w8PcXEMsju**TN*K_vmOQPSmGoe?XqEZ%#N zfTs)5#td^4+&8`^a~z^x$IJHII{| zsNDpX5573+kYoo5JZXa7HJWlvD*`0fadE~WaK%k0iHmVhcBnBxUXidvi`*sK!FMYKw&^3;n3@) zi&y^9HG2;Lx3Z>mkmOlBqSE(3GOV@G@uf85&%k)DO?fh?eyrDclE*14=F_8wEY20@tm5Ph*ZLCHzbL>fR`bd+)?xUss{wSZA8{j7 z)yRBbdtBs3yw{u?$kCE+rGKl-gruSC_NhGtW~>iL$D;QbjchO#ejH%9(JZQ#-2J`R z6>;HOvFtVxb#*FZ16~3frI&LECO4wSXGBhao=US^x^p(itdp{tdNQVqlVgqAYu2MX zlM$L>W<>7sN#=u$3a`Tqr6$@VqV`{2Q~3iOL74EXjsw&>EgTpZ)dFhpPXsV}pgrPH zqJMKFI^p=>9~n^aqN$T6d!9iePzLCElp8tc>VOXlc7!H|5XwXp*Mo@o1CpZE!z`5i zs_lt{zvD6yTfyW4rjd$9{wC#Lh4!P272G9a!2G|5RCxWbA+ezUp%ptC83vnBwh5^Q^@fElHu!2&dF~f%_pQ3N6^{cBYb#)AWkze8AXauo z@xX!gxMbPQ=4>zGjPK1TI}OafSGHs>(Ot$%t5kISgO;$Tpi*HrrRi@Z?SqNZ0!PX( z!ew05fidQx)|1V$L<#BX}funz=S#>-wU%OR}jY17|e4R7r-c0F#oSe z=v{D8lrpiPNoL83{X7I4F=>p3&|&)kCC5XgPWa1`=GxyWdCM@CDFvnU9iM78Wui5` z^%rT#CGS(j1hS5#jU=ULstKvY2pyd|RzKz;rlYe64?SXP+V9+O6UF+#unu5_%;F|1 zc2sn7Q68OnbOz~XRPY)ow61tzvfFGkD)h>|E`=%xbtoPmGbqZ;jciGA`0L)b@*NNh#^PS@51Azi^XZ1i42zYgKRkCM^hj*w2 zmweIyk_>^D`TF084o}!6O-l4wpE>ia%9;Yrh>R?aHwrmMXiGAV#lD94dV^S-M{iq$v*TX5{VLj(-Kh{D=yIgiS zGTM%<1QDU9pe!;+!Sg#1<|M&T_E~dGTv)T3emf!)QUHzT+lLh`W1`{{lUTL@ca{SC zTiXL?$ioW+mBQ_@8Xz9n0tq<$L+D3>P+wi$Lc$424=|G@DmT5Tq&lqSCHy<@Z$b>F z8y&}6V=&j}N}nuaFtzG{v1o9iyE|cMsWbIb`a4+$gjz|1QX&{qiZTfM+;(aow(ruA zH!~Oz6nqz7v-cad;>-cM4b~bld>_v}uwdk}qH>H-UU6tx=iY*ESt_ysE?O~>E4AQ>GE=BH>W^OP8P`PT7J z2#q63C#egdJbMG!K|e&-pfJzAU-n*$c^X=+8zK&EQNGo{uzt#wI3)Ne z6|7)Ig!$K-ws`B!0%v^iFsMsLh)9Rq5T^s%4EK-}rE$N}Hsuk)W4pmV9XF5JEJt!} zTGZyFZi)aIGr9eW@W(P z$qHJbhv=iIBo_qpj#Q*a;a1obwODC8^3ag^=7_7U%{*$8ZXK5eqMOg=g*EzTY8A0q z>txnobt3Q@=pBNotGpbU^NAaG#-!qLWSgn^jJ8&5Uzk0tj~OSB66D3#&dx)SDO^ZPNzr#o(N~5GoQIDh=(;%YZDvs!!AfZU!lC3(CwqH0YYuBp3hO@I zOPow)U8aMb(Nr4&yi}={KX?VcA9Qj9%2H*6=Z6XAVG6$W2fO%2oeB2uEE572c2{iq zO`1j;68Ya$vL>W#R3y-aiC?>Pl`&-f&!@1b0(jTV6rk~n$AMR~9Mwd|VDKsEi&no~ zG_gw9BxGyh+5_pBdCeC=#0s?>STZg#p;EvntaJ0NVC<(J(zRtE?w5i$1zMBn)m0I* z)jVvb$uRDhLwN+``0QqR@!GO{WUoq?j`C3MAi6_71mr*u)a7&Y3dg2A&V+jMYdPd* zH^AE0sbHK~JveqAc=Cq=+6Rn=IQ5ONkV>%ggUzpQ57~@3T#Kr*xzi9jZFReckp&UYI z`dNsQfwgHs1=iGs=NNQhL{|b_ns{ly+Fv!!r+=y}%V`1b6a0i*+;WKp9-?Tal=1%n zazKs06U`#`)>8fsoO7zjaS~fj_p3;H8QO7}NYI!cEq8EW&tnW4y39!?>6q0IlV<|t zb45Zp$5v5UOU<&d%_vsJQ4W<5Oz?-K%8z&V0L5^GP|QP46(FhwmfJ00S7bT$J+`u$ zg}AsPtMV$c%F4Bh96uhEY8D+|W739{ggTP2-fp(>IoxjRY4ACS{xWAw6@g5Zx#XBZtSwBqb+WEGKI5QzEft zZ8o?o#fP*CCsAd}GNx!M`+*YK4_G-45XDSE?H@nFn!846^7s);|HqGj`|DFIXa&ZP zSXKa&0QlURX$J@$zgttbK_RusuFwXo+lLTS=I2ASvS89ww~JJ&kdPFj5OvjKPa+#liKoefhA9u$Qh3*64|vHF21HJU1(_<*gpdF&07C$hVUZ^bQ@r4< zj^|Ji2|we3_}DY>A8T}u#;i33LFc%kPo4&2h62Z*#;!Ze4)x1u{vTn__E)MGzQs1< zTjun4SS>lBh}Rm*aSii``dP_h~qL+s=N3BC;oufH{<6O z{Q}c5#1?pl5-+O6pK#(&cu1>CA;as+L-9ZX9yRuZ;u=(j@i&0C(QIiGaSnSLCU02d z2}#~EbGYC{HvSm&A3*p|H}`5aDGDeN>BnP0nVz@O#2dGg{Mh%$*%}<563{f8@o^J} zd#E0NoCfd(Sh+^Q8V(W~=nh1H)@Kw-SXCOddoBRL`HAe-&&rQ#als^EgL>yA%1 zS*@ZhDb>QXpeFOw0%lWorOnyM`vzx}yMwzTs9SHEy7eZFm0uHl8yDOEVz1&os?osc znTv2mhpRro8!}p+nm1{czC6AF@j;xtceu)Yl%y2txLWlqM{L~7t8dL(z-s2IT|=dJ zA?RVv@1ZQ4WKbg~?irtBRqvz4uer1G77peByM*&KwOdv_USau~pQ-zUev)pIu zLOKs5%hx1#*QS*_GL$>yRFpX)wZ8l!$c3$O8>&qti9iEdrZAP2yj~2eIJfD{UIQ&7 zFQZZN8w7n<>&`Kv3vjR8(qp=xWH-^9UFi0i#EDA@iV4bD?<{9Mb!3?-&J0vrnD~>L zRoXMP?8)2yD71HllT_i%QQ;KjFUu2bwK?d(sLNXWPQV|7Oz_?`MJ;?l2P& zX?MGM*fIy_B%zItG1h1eGUX1#@Unbyl^x*}HZh7~k3?TFjeTXczi*=+*!<9@~EmzEpBH@t@V{4nhOSKAG4`B<}A{mSDVVRyyz6W zxy^BwRa~kbM3l;*vP!ZOuA(NtlrpJ>ODR=2U^*8E_9dkTtTiJu1WRxSd<6v4^HOu; zU9~jJ(Q^QBe#vDvx37<*^*`Q##zz^a<7~Q)TZYTrfjMqYSH~@0zh%>a{b>)`GeF7& zihf!7szG*3gY1R|+2d5<8$7v8JW1MRfX#l>gC4-Wxb}PEhJp82zv#Qpz+=4W7g`Jr z0UjD|;ECY|63b}8)*#EIEc2PW_xS9?qqfs(0@wgQK=1;B^9Y_r@C#2F?>KqO%zkFl z_z`p_j=*#pf~&*Ldx37=faA~uX%%n<>`BcL^S%S;CYMbTazZS=W$myfm&Drk1D z9zO^<*1)wMd7to=St}`wKWcdj)R)h3=?xfp4RYTlyk+L7#eFY+90v#~B(@Ns#;byB^KY^=8L*a+$=UTpS zx!~PI_LTEoV(7J+dRiB}Oz>HJUQvIAkd_|Uk56p3Eg*CiSIB5(PGsR|9{ zmW+nV*|2`I1v;Ko*dm+6oPacJro4w1PPQg(en5BGj0Mjx@>!c?D-1cCx#&?wA$ybF z5pcQf3?-gw6lZBNmIlf^cBYaKI7($}axD+Iy>`Y4o^_PY+ElhG;PKg+Cw%NNQT8VH znt-?57BI;ZkcmY!dDaJf6}FH`ABIdOrpdc8Q0}({UE;aOa(|jk6a&o zWT8AVdi=u(ZC9wLb@YsdSZVV2nU8(=WuoJ}IfA6hQ2z2DWUfaV&AC`TuP~o>G^rO$ z>M6BE!gSh3E}5+^pq60y)CN0)dX8bGfi$%#T}+>5?~)ZH)>29Vk(LVwuLv2=W-){D zBL&SmeuSHq5VKjwkI?Sp5r4>9U_h$cCB9p27m;%Y?Hx343G1*?)wtGdPLtMvPwXr= zNbT1vTZ*OQ*7~D>ppnJrQV>so<#b`_!PErqyO$$^w}~|Ydz&Da|9;{&-}o8NVRV=_ z?yzaH=B8|uz+K8=)90&mrdoancA@3Dg|I#p1KexxQKrCQ~fLbW>eIv9~^#y7Ed zi4WOp#*RW}6C2;;hi1~4vq`Aw~;OpPOf_s9Jzkz*cygfC6R zL+=&Q# zJN|{5P7glCaMg5HmJ5w{wVCJzB6Pc~=`4rYm-e@TsJ1yhv=oN&D%>Gq`}qNawdkU^ zmWQm3d6igS6*6yKEqp4?O>%zEi?`Lsj^i6hNTF;hbBNy23u<2T4Jb*k!ATW2cVd+~ zQHC`*fbO!Ws6-k*(j)$UGHblWO>19i4z015)d)LMZk7ZR^*KVi=&7f%takBe zf_@YWCJg+UZaHOpIy}7DaZC>#pPbQvPZHman&|Ef?V&IDLy7pVbT~a4+MP;=a+!E? zFqGXB3*lE`3wGhT@1f3&{n2`8OE`<48HeWdcW!CMuP8K8*_VwC?};TtbY#t_5YseK z>->f*v{4ly#9U2WWgR&g`tOg0+FRS&764chDiq?vZ2{ragsY>awWUpnu@7isY^;=A zs(Q=j?*33m%i{T=?eSz3ZWkn`(y`FemR6gzWlt&@3v~|TC+X_M21su!Oz(>)_Q%rn z1+>Z@PDVpFhlj%HcoKiYPt3={wxrT@w(fjB@NdO_EPYElwL6}Ot>CbI@iOR<%3A9H zQ9eHtPsFXIDw|?LeYstkSoUg7%%pqd-_Dp<^0x)VI!&zJmWhRmzr>#tPiC7#&>)ka zR!?mByOUyhX*qe!69}BsjK2`dKjhn^i8Xm&?oE7b2;SDjKg=LzX`&G;mCpi|z*D7T z;b;r~4y9Q24hk#%vkm_aQrcUESgnZ_??6h4AG#ogdQQ4{OlfvD2wPVhCe{&gg*x)wrOI^A6Cgp zemv+8z4gg{(ujHl^%Um|zMoJEEoUkm1!6cG!lMN

U|+3-nNm&M3hzWHix{S1tSS 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

<)$kclo448 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 literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.Concurrent.dll b/packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.Concurrent.dll new file mode 100644 index 0000000000000000000000000000000000000000..8f91a729a66b1a841138bce7b2061468afd4b8ca GIT binary patch literal 27648 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 + + + Nito.AsyncEx.Concurrent + + + +

+ An async-compatible producer/consumer collection. + + The type of elements contained in the collection. + + + + The underlying collection. + + + + + The maximum number of elements allowed in the collection. + + + + + The mutual-exclusion lock protecting the collection. + + + + + A condition variable that is signalled when the collection is not full. + + + + + A condition variable that is signalled when the collection is completed or not empty. + + + + + A cancellation token source that is canceled when the collection is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection and with a maximum element count. + + The collection to wrap. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection. + + The collection to wrap. + + + + Creates a new async-compatible producer/consumer collection with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection. + + + + + Whether the collection is empty. + + + + + Whether the collection is full. + + + + + Asynchronously marks the producer/consumer collection as complete for adding. + + + + + Synchronously marks the producer/consumer collection as complete for adding. + + + + + Attempts to add an item. + + The item to add. + A cancellation token that can be used to abort the add operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related add operations. May be null if this is the only add operation. + + + + Attempts to add an item. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer collection. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to take an item. + + A cancellation token that can be used to abort the take operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related take operations. May be null if this is the only take operation. + + + + Attempts to take an item. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + + + + The result of a TryTake, TakeFromAny, or TryTakeFromAny operation. + + + + + The collection from which the item was taken, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + + + + A progress implementation that sends progress reports to a producer/consumer collection. + + The type of progress value. + + + + The producer/consumer collection that receives progress reports. + + + + + Initializes a new instance of the class. + + The producer/consumer collection that receives progress reports. + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.Enlightenment.dll b/packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.Enlightenment.dll new file mode 100644 index 0000000000000000000000000000000000000000..e21d38061634f706ea0c7ee7b647fec343d0ba07 GIT binary patch literal 8192 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 aF`V;{+W#a12rU0!Oe=5KAGHr%1pWnI)oern literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.Enlightenment.xml b/packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.Enlightenment.xml new file mode 100644 index 000000000..db9ce6e4a --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.Enlightenment.xml @@ -0,0 +1,18 @@ + + + + Nito.AsyncEx.Enlightenment + + + + + Verifies platform enlightenment. + + + + + Returns a value indicating whether the correct platform enlightenment provider has been loaded. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/MonoAndroid/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..e414e7a28bd04110804695baaa20590f95d80849 GIT binary patch literal 96256 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 + + + Nito.AsyncEx + + + + + An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.Concurrent.dll b/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.Concurrent.dll new file mode 100644 index 0000000000000000000000000000000000000000..8f91a729a66b1a841138bce7b2061468afd4b8ca GIT binary patch literal 27648 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 + + + Nito.AsyncEx.Concurrent + + + + + An async-compatible producer/consumer collection. + + The type of elements contained in the collection. + + + + The underlying collection. + + + + + The maximum number of elements allowed in the collection. + + + + + The mutual-exclusion lock protecting the collection. + + + + + A condition variable that is signalled when the collection is not full. + + + + + A condition variable that is signalled when the collection is completed or not empty. + + + + + A cancellation token source that is canceled when the collection is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection and with a maximum element count. + + The collection to wrap. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection. + + The collection to wrap. + + + + Creates a new async-compatible producer/consumer collection with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection. + + + + + Whether the collection is empty. + + + + + Whether the collection is full. + + + + + Asynchronously marks the producer/consumer collection as complete for adding. + + + + + Synchronously marks the producer/consumer collection as complete for adding. + + + + + Attempts to add an item. + + The item to add. + A cancellation token that can be used to abort the add operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related add operations. May be null if this is the only add operation. + + + + Attempts to add an item. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer collection. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to take an item. + + A cancellation token that can be used to abort the take operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related take operations. May be null if this is the only take operation. + + + + Attempts to take an item. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + + + + The result of a TryTake, TakeFromAny, or TryTakeFromAny operation. + + + + + The collection from which the item was taken, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + + + + A progress implementation that sends progress reports to a producer/consumer collection. + + The type of progress value. + + + + The producer/consumer collection that receives progress reports. + + + + + Initializes a new instance of the class. + + The producer/consumer collection that receives progress reports. + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.Enlightenment.dll b/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.Enlightenment.dll new file mode 100644 index 0000000000000000000000000000000000000000..e21d38061634f706ea0c7ee7b647fec343d0ba07 GIT binary patch literal 8192 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 aF`V;{+W#a12rU0!Oe=5KAGHr%1pWnI)oern literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.Enlightenment.xml b/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.Enlightenment.xml new file mode 100644 index 000000000..db9ce6e4a --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.Enlightenment.xml @@ -0,0 +1,18 @@ + + + + Nito.AsyncEx.Enlightenment + + + + + Verifies platform enlightenment. + + + + + Returns a value indicating whether the correct platform enlightenment provider has been loaded. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.Mac20/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..e414e7a28bd04110804695baaa20590f95d80849 GIT binary patch literal 96256 zcmeFacbrs3_BLL(ZqJ>bp1|~EhGCe233s|@NMpnViUG`+Km`Fs#nd{Dv1x=wFoA+7 z=CDTA)ioiyh^~3faaUazM_t1jSKZZJbrs*|IaPhTdkF4+zwhsl-{zWIJBOGI zQ9aX+Z#sP12`40GHBFz<)N}F)O*2nu8oT#?O~)sWm@%}pG}2;4@3XT~dpNF|HQ|DZ zncUt{gPV$-;Yyw0C>1u;T^1qSgz$Cnl`5C8HhPml{pI%#_@MLWs?iG=mH)E7g(Ttk z_4$t4n*qq}EMTC|?_o!kfVAd3M>X_eZ4x#Gs!Oym@NPK?hR&LC+AQEbj)T77Nm;Gl znP?zS9om!ZIUEGh4LT|h;6(U2ztO0!p*=H>OCTb3RnS>%aLRh|cFaj8L7#TTkGg49 zpe|mnl>fC-`6(sJf8<=F{jHUXxV6K|dm!V)o=P~$Q6Qb6-Ni*p4M=YT5UU&>Qky{{ z;zVr{AK`e!s~J(Fy=+Wf<9hyfOrjgJ)YxF%=xx2wG80NQdIZ8;wD&M*lh?gcYLp1(UNHO28NH&i%L7y5eu-bhPRnL@Ao zBO_0%TF8TqqcG8)h!gRuyLC-Wdp^rs8yi)V+zWwLokoX<#2QUeVMzBTO7r&t)#O_{ zDYiw13I*d?M7gn1+6|c`6D%}nKcF_o6%`jzXinVy85cG$R5PF_`g6A2>7d+h0)~i$ zj2fokk@!gEq7W>$$gEv_63W?H6Y?frlQ*)f08piS>&sM0(Fafa_ap-9^mp`qsLhorKU| z8-kDFEMgkIv43BABm2lZ_P>-DQs+`R{M?#h1A4AR@}6J8F$(#Ug6u9N>d> z>QICXHoQsebgWIMI2>Fs)7Z#UH=#TQta}b1laW)-0OFc-!-{)mf{~oeJl%|dZYO5O z7vwPooX$};FUfaOv59B2@M;SE!>Em9UgH%S!G)8A8t;>4DvN~gmK7Ie?xpsw^3`=xS6+5i!PW{Qd1g_*_7d;iITa6MOjUx+(oq$ON$D-U(p3pvbOj*qo6y z5FcUFMnlnpJYjAIi((=#TEHaHg6i&P+(;-f9Qssx@#d%}Q&MH273GN<(LzbXK@SmR zW_qo+Bev{r*2Y1Up32#O4#DhutlMa$+c*YG*p{S7n)?!Su2Gm zb@%Jb3Dq5f9>F;pHXQASBDIr>1LJvxdF3taW4uDdEv$y|Y_1vOg(kU^O5D)I(wfRp ze7G&L8x7?NE6U&;V%m~!n1#|! zVHdVZ6i(V?$gE;)1^YWe0OlHsGo(o)D4wS9UK8-SzOjQ$Jm4+ncG5!XZkN# z$0J#1anJL?=w~{4Y{M)L2^fdXSfy)BE&akQwsa_sQ8t8e3k^J^lU%ce*-mAwNOMTpwwL2E`?MRHv94%Mh=^@lOO_rzp9kH&WQ?c|PXI$l5T{ zn6_1GWfa$x6jtaQ8J+!51`6|Uc9a+C9i&sDyX5HlSSiFKveqgz z*?7n%$Y-PMMH794)oA6upG+6{fJTbW$^uzp^GgK>%Lg(jl%Ql z9_0U|?oIoF7O4C6WKgaDp#5x81`GJJGCt8M7P+%Ruk)tD1j$oSM*lHZu}-n@!kI?S zspLFPjxIgPF#GKI^jZnvw8UqA+hTGMyx#ab{b>91skvxr>vH3NzL;9y9lsE%UTVB^l zQ60%NR%F}GV0Fr6rtM78ZVh(^UTarz&o{v!6YJS9-E;z!opb9@_-G&4TNn`$FHeS- zNI{p*LeC`fLjJup;$U6t?}ZE{fL(`&1!1krordW%u0mBv8*{s`NE=7`dM(9m`st^i z&NL>PG`!rJr_vBGTn=$Fi^Ys#CyHS+R-I_Ax`{ShsSY~E*oYcqr$UWgAKM8p2CLNu zRy#Jxi&onZ-C8Z*W+tN8EGuCnHaj>Y7Y5Eo=5`Iu&RA0PqNdn`Sd(HqV0c)mb6A%a zuM@LTD@1JNI)QywB$k;W+;o)0P#XK4%nVV5V0MPUf|cXkY;5sE{v4(?;~XZvV4P!$ zoQAJclqTa`SE&J;9Nz3WUaVS%8T)h28DZt?)CQ$jCC)_t`QxP-ERilV|I{{RBB%b+L}0K)(M;86uXU3c%AnNd*NK<+_x8E43D>kQ;a4( zPp4?u#IvwoY3}q`1oH*@9d~j@KUeJ!Iz~sU-+I=}RVlC3IT?BW{ZP*mow>NNtmkXpGc0+P@Gju@Ko8$K!>Gvk@pU!o!Jk01_H;!-;bd?8Mm) zNz#W4&0_lb-YTqc3e8g5%goDbr7jzI-ZM~bxxcZk#&UYXluW&9*~g$MM3cv&co8o} zQ)&NBsN*G00!gyzjpPY6_2sGlgR*iuQ8sj|K60>Pid#8Yw8e{a1r^${-&6HX894EQ)4ov zoFD>#kN)T-mNO#P7h1t`W_=-?h@BgqnCB)gWh~C8TOf|h^7|M}(15#ey6L$%1Fadx zb56+*D-aga>wdG4qmATwF>0$;CUkUiGfSeSapH7m_yGy6$>U+DP%!sCn4Ri5)m}h0 z=4O)u{Ll0Gs75a~CwUn%Z*|j`)6?lI;H~qngqyqyj+E7v=L~2$(d5;j;XvE-uR)+H zaV^|7FL51Xvb@`&yl7d`}V;H7VbqtOX&f}gw@j#(1kf>4{6BG(8S zsb{sIoB0v+2IN10=PTGez}``vSb=Dfm(WoL_`gE1xG-@mypnLwzz|MC6Tb%N?C`?j z#BB%-Dw>qI9lpN?_T&~D3)g5U`5Th%fD@}K_526HOWX-mS+Eu7-DpALE+P-75qBfd zGXj$RhbW;iT9~*8q?gdP9Lc|X0!S+vJsb^RFte_E$7s0bip0H)gaOb->WYSI4Y9Dh zxu|nM&khi2%92=xsQ!I$%;{m&D}@4Wz@w5_MB-ee0OukFW-u@68qjm$Mw9BIoRVe6 zt;5vC|Hzz~gw*yZA7(mhM_25ER@vP1E~L6Wr3LwF-5;o>y*%06)1jfNoHh{(8pUss zD$^(shv(MlS9x&@g2=1$BJ*6Qsc+n}tmp@FVprl^e(?Hn%d)c98AlcI8Xk(?!LAbwe4km8}76wD){{0-?;=9Lweg@aVT%Slx^yjbSl4dzo8 zE-MOBJ)Dz@d6g*6vl~rU770>5l9RG>c&Y4-Hj%EZI7sTm-P!IJeeb5 zP7+TZJPeX2Vw%8^iFquv&a2^Cqt950St*+QJ(9{;iLuTL#>%Ha4aQ1LRMBLutZm$M z65=pco`;bp-Gea4%DP}7gCQr9cv`eck!!Zh7%QYXIOfO);~sZaZXOc8 z>kE(l5l-vbOTBKwEw(;FTjf>UxZui={Z;y zgj&05+vc2tz&dXrwSEb_*16;qy8g=m=~)PS{q&sE@?$qL_A3&boWdIaRmMJ<;lv*h zgdOS`=Z^@RIpZ~i+6+^k+j1<*u{j3}V{|(fiO~@!GZy8><#=Ht+p)+-&WuHQab+wr zvF%u7>(h)yed5YkWMbQ~D3EQ&qV?j-SY%SzvB=6dW6=iU%UEPm*s&mTe+KxpwUo#f{Oj;R>Olmt81$mpX=x5W*SY#yFvB>6c#-jfqy^KXh!jm~R-?0Y2 z>g4Mn&1I*LE!U|x01|(K!)2z0Z<3Z0T5YTj%PI5$SHHY%LHyuu6-UHcx9}d^lfs$N-3lJ4QAREU% z0fn39}wN`b3})&-m9XJu^*w zf(SU{uMrdU4#}uOQ;2$rPZ1%%{FzgQK%Zi@<&H)lRIAUFJV%z67yC_S6Sg(vq}#!? z$Nr4xc4E^b3ApKzEhwfKmSlDZ*#2io6XSUa*BxQ8D<$NdiS^B|&*^%`UISV(b)=>J zH~);RK4Jp9*VuCo*d4Q4uq8zQ$lVi?wf>%vI!r_l0bX(W0Y9>I&tiUGYQdkoX1Z0`YwhUb;}i)#)&NFGXZ@?`L!;!H>W( zx`))okdLu0TDKT3E?!whixK5Uq11-N_YXp6gYH2Ii{mISE6__E&hd-QPx~cE*Y(%j z!iTC#dN(r_;wDPLw&iC#)Fr+BH*^5ohBPW1bI=Vnc0#+JZtTIQg_Gx-Fw|Cy7psE( zp*8I^4j7|^*r^P;&`$lt$1_p!ecS+xq$?y`ovwuMrHG7u%8h+U@T=kQv?%1)Ak?XA zxtgy z+8BykjDa2)KShsb5UIyt@r@mZNVq!P0^ds!nfxnE z{v;SXWG2m4P+|uUT9<4?06V*OdTtt5Cb(EJV^s%%>07h|f|5VZq$K~i_@Q*C_ z^iT;`r-#A!Qbb0NN}~q}{s=gxy=wIf$i+C8*Vp1W^JkxOO(V?qJYKFEiNsxR=eEdl zL+lLC=>{)oor%qWFvGG<%P6S}lbcI~%IqnAn@xk(iH6s}_F1B)9iMHJr=F^cGHsG| zfO7}2!4{CjI@nTtQ}(SST%Fz;zLz30Wv?=2Cm|?1>vRC*b+PQOKMFkbylvohYV0;0 zX`k64e_JquYT1qeX*2C&sMTqE(5cf7;`^iFrN>CPI=v%&FGXZ@sx~^2;E#oaM~$ve z!L6bM8s|Mh<4o+#2$@E)OD@=zfO?a5Y{qczuiEm zuH(cHrN@i!?+!1$hlH!sd&2ipL`LTtqcaKq-f-l?s$UDLUk4}KYe>qX{zTM~`H!&q z?}PNre_!!K=?UVS{P&Y^b$WmJUW&-%Uk^c;FGw)?<8d?kGN^n=KcR5_&Wsw)Q3TD) z-X}Kwd8F0l0LjlyA1FRY=16*?gsan&;Cm?|qXYIX)PV&55I9myY)s-lR{8Oul1K?a z69LMeX)oP2-$Rj}Hkd5F$#;r`tJ8)imJXS18bj6H=CdUJYZp)^z43pk?~)X5paP6|s(5{?Q8+ky}~!7lec z#1N94hGLp+Ssj<_Sfy`?IR12y`8bIpV;ArNDTcoMM{vctS3saM_hoaSuk6cw%qCvm zzKkWU8Hu8@7-owyLZ?^?&dia{mK-B=)?xw11ho^>^yKcH*~UrfMfxVTal!if2s`Fc zw*}Cx32j7gOt+nKb;B|@t6N8|ZVemKExYa8w1U}fU!dd69y2ayninS3>QQw!VQrxqIKqo3>e3bzYv<2wldG#?Bk4rA)>f zutncJaC5FLurSEj;!NlTLvO4uJ2CM}dmDjko9u>NexFLy$z#wd(&U*KK9ES0*lfyCrViQ8WDFwu-PwAjg;Ll@g(7j>cap&-w?TQBt!hoP^RaNs z$UD+e3gbvLIRj?GTAGzH>et95r;By9dbXjY*kH3K6A7e_*oMW+SV2GRnvB6Ls5hh* zn@9yGjzSufFmL3D#}G}rByWtbmq}h+6VVJ!Pcvg`UE95RPUr9PAx?}Sxr$*nthh;C zGh$j!i973a3e$&zZnbpK-1i20~$3nRLA*+KOK=qG9 zDdh|g!wnxsW87fuyfZvX>U-oCjF%Z*I9~1p8CY6d8F_04%IK`Y@W?>zB+)K=MO##s zj5l~iJ2M7uGuGIg+hA;-?5(uSY)eY8q{K$bL%CeJZ_B>q;(B~$3}Xq`(@xHJ+({#f zd*+5S3uU8jTO8*JRMA|yF3*%=qLdnjOi~#1DWNtz= zk;Cx}dwGRP3T<>QlH|2>5)$*^^lj{!_Ln(dj%oiFh$ahs%EaK$`!$(6I3hW(eNnQP zm=8CscYV2Lw$-&qvv|k5@$hJo;1Ahh4uP?)*A2niXR+G*;EaBn zZSj9xZqMWsjCq-IkJribp+K7DHG4Z=3`;MfQrK~cKe(Ur7n6YVU=k7^u+Fh3A#f8H zki~Ty$Ij7gLlmM6%2^ghuEH zc5GyA@Js5)2t@yUNew^p54f{4kfj2MuX1|(eO!{*+OJ+3+r zdXHgynxhs)et98$*p4z@1uf-WzK{W}VB!OYt3Qm^I)p8RqH z3(_1XU(Ur@Ipp|g*Kut5jX??vZ7TngKtVGmvc7kuJug9e+yiCN(i#Fdlq{#r(?AhB zxH&ICcqzs)h3B119B+6$6c~##b(QGaB-*)`CNi|-r4VI;i3`Ev!(NGtn+r^8Sxb5N zEDT;A=5Sm5AFN_uCCb`!;*rguS@Z%$Ek1{9mC74zxtrh(tH>Dyf+(tUg9HFMS0RL>k!}9wA(d2a?aU%UC zd|u;(r&G)u?fM3I$s6HRC2oQXHDphSUZ>DlU|;4F@rrTn2dy(Q>u7Yl5;4i{ZGvKB$_g!m9e$q`mm>bPaJVaQE=nN!& z$4EMqc$h#^Ji5Uwm$Ch4v&8t0j+?+ph#@PRg^>GZfq^-Q`&#l5WQ0d7kJ59~kI`G_ zJq|DV1RNjd_wlwAxrry~EXPn4Tb+CYLk&{ZqU#{~lN?iXqLXZ%bW3!uJ=o7NPT~F? zq_7P?1s~1!X?QtFy%g!$ta{zHUh^I|I}}bOD@G{yC^X%SObkWQiI17bkon#TjxCwFHc>v`>M+|5}$NdY?alOa>r3FUdk0+ z8>p+B9%xj4p|8qh_f>gga>rBd3s8hMc#(>_>6hrO^InFRr!U$6slK~Y?#ou+CZlh& z(f5_U`jY)~`qt0clfyv0{|c0V_o{ev_A-#cLh9gp+#$arYOaPh_1RM4<^73#c|Y8}x(MH7aCPEs$k2&*;QH@M z@Go#V;F>kedqDqDL>v>wW2^oHi8yhK`yWv3e-ax#JnnBn*|dE>*blXbJMDjk06fa^ zKcXNxSE>e&Ka6>oq6T`46CZ=;Prsbco^j65^}$os^~`!tY;O5j~G zJgXFWI`J8!Z^M#RT7Ek3rL;$!(N zKHg`O^mxlld<SEFz|?8p(@Bvo@3++s-3gZ{tJ5UlEC#i1c;OmxyC10GT8+tK^~q9rXJDN{nE4)2M(0T!zQCiO!1h`e z%>?pcgA7OB(9bC;&Q>KAeSR29QW2zzb2##TH$@1ilpJg_1fYY3xNZ*s7T^-bQcc_BKNN_A_GnV6=ZdyP%YE99cuyvB=>k7J2Y+!|x$Db|LJg>N0X zK3-Xf#A;&rj2YhA6V%3s`Dk~c1TEtl%YifiF)b-VMYE0NNM?vs0L_~#@ib#HeSn!;QGKIdj1Nush;Ps zW0V)+Ku_Ea3Z8Caz3!!(5C`8QOVLj>!=cU;lNe0Eyj+EXE3`q32O=^h@=cN$H6(Lx=Jzr#JVdBI01L{1B0w8iT^vxliLRD%+&e&MIaN(v z0oP67+IS>^Z`$E26oZh6tVD;va>OC@5;4Kt4DfuMzxsOB4|Z}S+@Z>`x^wQ<^3I}s z+%FDM*CQ==*Ypi5aUG?{Aq}ErJ;L)Mqtl6~4mZ&Wo=%;Fa8-gEK%*3Kf_u!iUMfZC zCAgE69ZE*00Ryr+4TuFg^-!=G3w0_9K%MC8>}x|trztu$3v_u(r)Qsxpx;GZhbGYs zytx<>(Cpn=n7jvsaC(y%O0&eaFqFhFLD{B?o-EZ)KQV$}wN4RaZ~WtW%qKZdJ+jO< zVJBJ3ji-U}>zfi6JaS|)x_PHzQvwqstww7R-QSTN3$5~90vzGw_OiJwDR}hdBM3Pi zYo6uNH`kjHksviVha;Ewb5i}n^5`dCwB1p_bGADYWbeu2=*Ld-KE7p#?&WVrTk!o&>U0u@&j)^7PF;=B-JAT{$m*3;!VL7eB%l=xclH)b|LP zOR!HvztRePGG!E!REF@lavKCnDzv{X{H`5z4L;JtggTtw4iqgHhby$^cPry>T?65G zP{kyAHobM#OOUOuwy7Xz2T<`{8=>R)OS1kK1SZhEc&m8#T$%%##osUv#y+pN%&Qqz zl)Yiw+rP3v4_arm5_O^l{%GXVTbWPx$AB1P|Iv7wwZ#MGITybo_V}}^Kl?O31n~p1 zas3?`llCf5D7Ts@_6kE8*em4KwzVm*b8D}5=;k_m#aM%FZfO=HWbYa4R44=FvT=GR zNJip=yxMK%i?JlxKUg^0o+h`(FQ_OGS75L5>4&LH#;YMH z81O1Qe;fi`V{|R*R+Nf*>G2?0t#EI87ixurdI%)jm2D!0RmE>D7oi1+!@E256FhcQ~&wC51`w#ZD2&Dx=$=-D_ri&Qw;$L=ZKdjvKq zjIU?YTUUKarpQbJA(KI^a10$YUiNl-Z*3{dDw0KHQO+oprJ7L+6^iW@%erWps`JFMXNEN4jn`C)|uFsw|G0uKS;u!3{M_*SIp zF38}jh`u?AF#9zup48+Z&q3?D>#z|*98s;i7)K+LHSYh_$XgXSDi$@kac0E*O(rrJQ8o{3nwZCaEuZ5sRKyfz)K2%A}w(`C*qDf&bU)5l~L!Z+kF_{ZO>7KO;b z*HUNG&uP=5QK6Y73p2B%3H?j2?N4$Z~BL*Mir^Ogz6{34EnVhpL3Xpw&` zVwo{NOD^<}12r}V_CeE7SK|*oOg)0X+&;uP@)^)LrxqccJ4fP7T>S-qIem-G!1a%( zWHVnpgEWUpyW1Kpw7cDL(Gnr7ui;iDPC!)b@!`sH_(TLaO`Zhb&J|3DX4V6Wp1l0*36o8G$W%QABXlR!ukRNR&ndP&&4_!0`sEXmAemISm5T**f=zyddG zu`JnIEIW5xa#b)-Qm?#n{~qO@D&^i0ER=g3E}|i%Q#-&-YzxN}o26x`IaB78nyIiT zm<5iWJqCb_0vw#jdz08$GQOToFQ?Q@0wGdrEDC6ijlF0SEDa)WMmF9_NS%&A>I^tKl@eD7vk{af5H`MPgy+tI6RUB#$>RF| zHng8#*{%+rxyfQl9W@SLpzNwT&M zb_w%A$-a`9KFg#zEx7=J(xPyhsut-K>5?#QO0baRb>7+VlIOtj_eKTqYnAbu#JRwg z+(ewm0Jn1IBY*`vw{R>AzJ-)tM1S^TxD~i)f%zo<78g*sIRp|GXS3qHPqP*GDAN7_#KddfSc}I1Ev1@wXT1Ff(RwEZH7^n1|GnIdqWFdXzd9 zv^n_888c{}oOQLU9z(q8(k3nf3vB{>=w%4$)WzcBI#9&lPikQk%W9@Y4_Z!d_N8#y zgD`x>duQqtspvuUa+cLh(q~zn|JGH|Z$!9AMZd|KDoeJe3f7qyToUvf>SD_~9sTAq zK%9-iO{-I!_T6|SO%vozpkiXGY?WTY;l;=pad-ISsTk z@t4zQXs*2Z=267OHW=IWJHRsY&7BD8)Ln4--#?%}IL&TkzF{i#mb>ZAz6UOQ3pRT3 z-V=0+RP+{lIr9yZY;3;CzNi;;8OcFJqswIH*DN_OR%UOu_~M|?P$OI3>`B}w_8gFY z0*kENCy<|79{ofYc|AJyIe>XBkfFp%2p!O^`5xe$%n4!oGjQ;p$DeUXYd(PTHxSJ8 z?yX>Btbt%-MoM7AoBvWBh34Jo^*V9hExF(^OO1UGs7ytJZ+R9d9R2hEKZz#alIKP` z-7OEFHl6`Ka9mOpTy8h2xCuPD^3u#d_l~V$nqnugF~{3w_oB#YY|L<8&DeOT)ywBi zt3Z|;eNEZh3-^JBYp9HzxF2EjQ5Mz>pDGO-k0Av=&fzQr+I2Mfwk-o1GBWu8vT(g2Qk=_nX8Rh!}8%C?G# zYPK$jH2VQi%<~axQ|3NC8W{T88nAM1qU+RyBIBWqjQk!an<3PjspBHmVDIB2kKYA( zWQUN4L6g0HBl0~;@*@fF6vRus!YlY6ImFF>t8~H4k$=lRNJu||Sa^Q-XeND2ke(!_ zuRwa8VmyARJ1ga*9P2&C=z=>HY{tfLh|O~ zkQV8zni8ODY%H32IOs4rMsh*p=uMyhL52hpOL@p##qXM6bmrNK$Fo>|_c`;t)%CH4 z!uMiRw%9n8@O;e8_?G{LBo+Ek!KCp5|7m!5CX3gqvDC=9RNlnF(39^On{+60i21R| z5&!|G8fnL!`rF@Or-wsscqwsr<*riV=A-?H!-aBnVHMR2h8vDETdjr8Tl zRji6+EWU(HKk*ET1hRQH+yT4nEN$C^vg_X+CUw(yhqLL>c7nUZ8%uW|@;fFcKUA8h zdpbF5U4!IuBN~KJeF+ot2=-DeUd`$`F^_@kvb0O*&fqM}AcAFY)cZrO|F+n0OREhLjur8 z%ePgBN!w;5v#1z~>v;A<7C{U$lnLUTe=J(3&=sBrh=R|Acs$CNViWTcuKa8$<4wt?h@V`_WP=mFsmP}H z4E(wQ%Kz4f<*d>$i}3R{#JT2y@wnoc`ooi27wpEb);N zi}Q$Fz99*_0W6>K#4D7z$i~7V8nNDGtiQlvtR{)o%vj493pU_b)Bqnvj^f*sh-hxb z>J*k95$_6nVMp!=J%@P5Nqfb~GUgpVA8kV@g(hTf1N{*)`A#;r<^N>_> z5%Jibjz&UrzadMu_Z!MlDD28FyEfRHwnA36zIlgG&hYK+KA15sBy3PEDZBg}0UE1| ze&R%QO4!YOLufGUW@kXWc*#v+cJq<<#w%HwT}Sq_hFbP*u8(81IBspCzMwbvZ8ak@ z`?d|`v-!sJA!|eVaBsDVe1;~mq>Rjc0uB$duH#Y&YeHE|vVBsy9rqiL181}-{7Ue5 z%4S1{5A7b_Jz{H83fP9!IdkycJ^X!*zp32_?>DPw<_Sk78Dsyu@$4c3+5!8i)7F^( z?{~OEwWmsJULEAAH^iML?iu1JR zmD@K)RKHq=4~Q{-TjB8$PyG~qrQK8ew9q|$7~KyB(G87YoU&%RA4tsIJ;r~e%4scA zXA5P8xJl?7QEQ=RM9meqw3@jLu3(O95Ux;%G^}Z@P>(b&f>w8gDRW>U-KEuZCqhDn z`pRRRGX}HlS3}zhwOu9Y3D0T$o%(tREie@NRHy|b*C5WNRex*nlwVDEmB@Tz5T$i_ z+c(yzy@xOAU!k5IvZl30ol(E2f4w@_8{Jv24lfzq>8a!D8FQ~VrEP|MVQolgRPQ#w zI;c^t5%*QNp4y^_G4~O7fwdH&6=|Di&qTX`olA2^CK3 znGWq!ranZCob9Z_meW&@qg7O>f&QA-Hq}Ei3WRIat1XNA*Qm**)chFKJ1izG zr?(%iT2=MxpnBzZ(*DQ6ZBvs_c28|q_+mr7ss^P(ebBZBxtF)o{?CZz_mo_I4{1Zy zEuGsp)~or5$$l~cJ(~Rqy#|BVJ6>q;I6)53cU=z*ABT})8$~pJ2vHICI7EMp5=GJT zi0&RnRIQE`G_QoHUZn&*DN+XFz4v*D`FSCEgVaTWP8(^^%@Xqm;WeoT1zk~3-eC2( zp!Y;dyLwL03oYcu)N6t+_lP>xdm{6eHll7-;83$4L`t`+7W923dE2Ss&M#5wRY=Eo zvPU`8>^Vs{Mva!3Pl?PiYDcFCyh%X!svXsMiTSm}+zF@4^I*2wK4tEt_LX$E4JI0^ z4w0Cb2ybUKMR@l$lDD%uOmhEW5Od#E9U*8O%1)G!bU%VO4(KFF*I#VCt2$Y9Sq>@p z;;p;Wh4-k~Y#d6?GTbcr?V-*Q-j0%P4|T5a&JnHmRLf1w4(70@x?a#9MatglRzV*~ z%n9laL4G@9PEdDR-Ul5-E1kK>?~K9|8;Dj5+N+UhKlOm1oh^FIaS`)cl#aZY1U-cV z-f?)!{YnmRl6oTt9jw+0!WjZ$9-`jM;Z0T_2s&MOQ`E;!L6E~#^{Mc7LVoY!ndj$% zj;f`U>FS??euw`30iN&tDCi{A;W(T=x|(`!RzNgE73i$YBXLhHTLyggO3+6hV;+tB zYvgfu8i#ocuT=s4L(mDTQc$m;6IHdKT_wLBRV(OaL9{%~kD!jOFL4jvVw0)ulD0%!@PT zd^I8`hXra&i8&p0bgx>dwia}kp!3u=f-seXcd^<|P_gi?P&){EOVD*{jG!(l`z>lG zL3@Uo?sm1ipg|JzUbUy7?*y$@dkgv^M9qGu_7!xU)XF1jf>`McL652Zg*PAQUiE}J zNYJN(o>!9u9WF6nRfh<=PtYILWRX%J_4k^>rypU7GN60a8)}-M7evb2>Ts!tJEb1p zS2KjStyuRHi*^z8sX9vRIY7{7YNo_Amj6QG|13lf27Regf=v0oQfCVCM6<8eF9eOL zVA;P_3j_@n^qo38r;h%u&XxQ=C}+$c)cF$Aw83@iLMfkVOFyZl!sAYToYKxEg3iU} zVw`fFO9kyUh$!S-F6djaOQCbCpi;ERdsW1FP|#J<&Z5rmB=XWa_Bic~(#%mT}`$gY&$g*QFISIxh+`WoU9<7Gx|q z*m+eDm$didZp|MBncmUiye`P-5_kTTQ=47RpT(Yh4Pu-c0mM2oxsP<-5@g1g&78M$ z?74;WuJBBs-pYAj?>qP5k*jc+deh)fF>~G!WB8czRZg>NuUmkpSEt7o!F{tIDgPcm zw5(ZuUpy2$n|wENXwPeUUv() zM-IOY?w^L-#rPvvLE851%{vVWcWQCv0+b)PlxE zh~HlKFx+Uv)0@!Q=wP(^EP9dA4etGr%ra8jdk2!fQ#aiY%a#{)tCQo2;%0SgE#+S= z?t0ie2lL9hq|xeHdcNI_t$l6OGl{D zEp%TfrR04|Sh|Pm=Aw>PRk5b7>2k4(zq^%`n?t0W9cG+QDxHRAbY&)2`{eSAw4dv^ zX!8con;co?95}bJ-*ycL&i!kDx@*g}gANnBUqD{hjJ!8Y_an3)(*{h9)3#{Ow~Kuk^9|ILqka>*2;7OosO{E`tfPV9 z6*!(@Do3pdug*z(QjnH0GZJ13wNz*2XYw`DvT=^eiIbIMbm*I7ZjC!?bF_p^Ss33_ zuZo)~(Qd_tYw|K>*;Fa=5zoMqC^7^%W^UkW|hCqCokreYjgHIvstb*5a*@x(f|oP)7n$+dv7%!cyX ztWQjnm$AH*-L}B}OLsxr+fLlA2Q$2zgeM`~tSScVp65F1#OTulhNvbPD;^q1Zc)|V zX#e-MK2hqalVfY)jzOFE)aK|r>(iT6b8B%l<312KZMe3+S&bgV7Px)+&Gn`qvDEva zzwE9i!u`8D5xI=TXk$hm6Vp*)#5W@hDQj^!oTX%K#rA2e`t1P5za(@x&JAA*9SzsC z_WSG1II|KX)t`oO?E0W|5qk7}t?cz{peMuZFNTsE-m3Yc@(ecWZ4^+{HIbmCC$-!r#rm9=$Ho2VubkN@M^&M z7WHo%f&VZ2GK*$3Z;9o`M>gGebt7m=w0XHmK}fwTl7rHSfH&e z+M{h8zI(KbMHBIPO8oz<77ZJ=7yj?rN17<}-J;h1?fCCeGpKMR(cw1cJ9Ya5^%zw2 z?!Zadh0nFfZQKioZcA*;<;_!Ye=s9uMZb3J(5tY5V-7zKodHxQXsLRkv&yMgM_Y6c zP=mVPqLm%TI*n>ioQfzlFT7=UyTZI+(X9iCj<)FY7}1%67KU#gS&o@;kwy26EC6r2 zR!aG>sB>t!Gg$2`XkK`Wp#|9W?`4pBYWTCx5OtVEt&R0gi%MEF40YS8&ar53)NQ+Z z)S@cXZHM~AqR-;bI{3;$n`o`x28yfQESg#$$JxPLiv|si<4Y)aTC{il0{lONA6Zm7 zl&G%VNVzi_a)zoF-=OQGFJV_u`k3u4Jgu^Qz)E8g^DK7TtBG$@Obz^|m zxKq_rg6645hlaz`R0L0PSkt3{rmM;Twd1_3!J;D@!r{YJTY%bedN$0WoiKVIp>__C zqh_eRESlL+05l^&jyh7EAZV#Nt6qhUR7(UcSCbp}9C)<4-=eP?j~{r9a(FQmH9fC< z&cNeUxkYQb77jc?P2Ae>)^sf$m{2!bG`aEWfhVb#0`%y>S?Y%XeLCR2z(8KX{O{TY%Do+nw0~S~+;Qvob(m3?Ait7NDU+c6R*H87U_X z+1EKDK=%)s;@lV@x8*qJ{Qym9NjYs}m~Ls^?^|waIp5h*(ERYrgI}vW-UDoDd4@?vc%cWqLu-VsU^-Hg669`urFBR zJS=D)O4JVYiiwF5RRgUHkfWA5g=0mgGsA@}!NE^@99kfSbkRvIL^U+g?$)18j8U+lbSQG3hFEtfcN z1-v&~mOGyWyvOjA;$IeVRkGYE*u~_|IpCEb(Is|mATIge}J|3RZg8nzr=d?DyK`3 z8LzK$wiUEcl|ZwroU<&t8aG9*a^4X%U;PmIr0ObX^lp?nU!7k!KXR=T9!Ingyrq#} zI+HD0Tz75c1}7QtzHYh6nHTUzsGFT77X1|YedHGB1B;f_y%PDA^FzS9MG|B3k?#=iC7ORB?xMnV|XVv&bPecQ{{KbYR^> z#dkSZ?QU}TEb?se-OgtgO$6^Ar*e-Bue^1o(`3=axyysw0Wa11l=G2AFBC6rea6{*FO%P}k-uqu z&e_SL7mA;3eZko$;JwrOqBGT^myzxz=XQ%mBHb&_(*f_v);~C}1-y4!|LD9Yh~wEe zt*<%#_GW(b!=*#Yo!6Yf7JZD7;WcM7K^&LDpp5zvcApVA5@abZb8@dbEBUpz8$9SItI%krRG6>_@Cl13(Jz2_~cYq3()UC)t zht%DjgT@WK8_z^-x`MkKR;$kfG;82vctU!yVsXLt=V3wf z!rY_(-3cE;-n&J$$o=n5l|jzo$o=om(H0Fw?tgb4wx|QS|HG*}RMI&YA@{GH`z_iZ zxqsu7PbSaIqTe_}0yH-Cjniq6`gp(!JiFaY(DLxRvBhowbhfiR&dmRE##{7C?DMjJ zITKAxq`SK9TW6(3@0H)&_MNjvkQp_;cb+!9@GmNx_4m$87R@XrdfmhfpHg~9+xO1f zhNl(}Th;b&=kEb}sO<-*U<%8yTDR+ItRQ7f|jda4L_t`KF`$$2QfcubM?sqTH}WFS%S>$ zRG=?6yzrvNJt75~xv?$H8nDXEqVZ+9XkEvX{j@@AplvuLOI0-#??8J4T5RsU!!(7y`MzuP>0SAa^|3-v<* z>favL&k9-??gw3p^q(ziD60ngmqm*jhqdE{lc_ABX^|0KCulzEVRP`B4KMr!%2%vA zEuzd~y^BHW-pDGqSnnU86%EDuGC@n#J&|qNOY{ep_Y=;9%k=jFTH}`K@@Wb`<{nr5 zbZ3AZRjzk4DEytj0B9dU^TJ+79OyJb?>bY4#c>N^rJxUs{#~+bdxieYqJE{jwpZ%r z>C9nyxHf*BTct+`GNrB3V*`Y9MLjV)T1a-oxakd z-@!_CdWA(_H2u`CPOl1(SKePgZqa8=(eirzN`UIh2k3V!x+U(Y2K_gSZj84B{UB($ zS~g&>_6EJ%;Zh=XUhA~>Mtz1w%Lbg<-mHHe@aDA-(XU%{Yy0`_t-ACGlkV2`%iG)a zwiX@GeqFn-mjvkY_745NMQ66()*jQ_&M@iDY=5A=Q(qjQC)$VV&jR#D`*1z>NQoJK zyzayHk$QKFhE@?xu;`!7UjR+AsHl=ClWyCxZ-J&--WDxHM_Dwpl;{LOW;`3I7aF7% z4j2+1sV}oJi{nJsTC_zA(ajdkEG4?rq?5hVNd1}Nsfwm`$YIV=rnJ+VtMO^KTLRSV zZ?0bo&=&rddR>5a^|#iYN1JqyHci8gh(aQ4Ma4G(5 zi$3u0#qIWsEqcEEUc6=gON%b7ycZw7`i(_LRXu=@Qr&OSwC4At`|5`S^m%lGekwr! zj_#*l3Q%dq{`w7zE{wNS9H8H^XwJY96$k2%0<>GjLHf%89a=F_e;c49D<)~a?!#GT z%*bTL!8#nE3n~uLn1_$;lKB%=-~#1e`x)8K&?OU57&noBw8P#kF#ib{ipsB`gDt^ z^$~e8kI?4`Z$556eF@$lO-#uA!Jnbux9M)jx#E%fs~p~uS{*OBhk06flnx7eQk^;M z!G1^S{Vh7X{K0-R^}QDH-1J!es6{+CJyySH(X^4<4m?(`wdnL{xpS=k%%X2v$026r z37OJ5>NwqIkSeaw9mnZzK}*$_11f;F5j0=D)!N)~yq;uZ{~$=(PdY)}N^Fv*`HBc*jZlML|!7Lj%j5q<%%vLiGe;*3Zi0ovgnIc&EB2Yn{lHw!7mL9W_X7eX4G>Xky6>b*hdBF}LnGRgbbf zp0J*#ceRMC`_uIP7IFSNO&=YkdpLBOej?yK6*@!z!63DwY=@3B^7Ndo$DT;d=BqpP zJMQc}URtlPyg%!)p>!T^j(#I2-JCq$nR?rkjLbiyU7wl9o2zG9-m>s69dq?OL1yll zmlt!MUTkBocJ}F*r?0hWa%g`wU*9f>edWN8v-BE+!lzWdR=GewZ4vFVK!0n|WpxX1 zpDlMyyFl;NWArR`SFFc7B#(ErAm;b4h6VamL8hH8)Mw@J7V2dNNxwZ?UuRLOu^sp4 zZnx;Z+Nm99>(xQJ&D+n`Pv@jNN55tfN2zo4dloqjtK4(+H-fkxoLhX3E>5xx3&SI8 zKdC%VR|=XJ-nRA~pa#qP9RF9?`MTYr?*}db8fIfQG{%9pGCat9r*e_r)yCuqy;vVA z=w0V(o;l)kM9lA9XP?URfEHOq-UWKAQ?tAa^llcBccJb)Ez7%5Z)*{GOLX1oS>6)O z{~v)lkhfIh61O1cw^Wx2Vm%b7i}GfRW!kqfIa@5#3k;IkVp-m7u}m+vJkA!&^i?+9 zp?Gq>On+(-pPVn#Ut2_7mgz(1WOZ4lkF$upi}n6zW_cIuBP=5C6205pEbo%MHn_YG zI#6QHS10I$YM1LX1exA(XRW_obh)w*?;e|O`_Rn(SL!u32j+K`etbbTzpL~g zEF$k}y>eleceQ?05bO4sj%)PGf=nN~R`=%cuGOFC@UGL}3*x!di5=JJ+OsK>z2g|5 ztpqI$|E;85{ZcP72q!g5Z5pd0iWK}NG1^ou5@7>1bCs z>I#dVz{qf;9%NBv9Z{!6U)P=jw6#Tll9;;~gxu$XcR(f`W{aEjbc;A!+@up0am{d3 zUj5yqXA5t>x?bZJslM2vM?+&n`7v+SH|E5=S$~@o^JZOezLW^MyjgaOt`cOdv_fwm z@Xjn-q4&?>-Kx(Dcndpj)yoVDzuLN_=G*ik zf=qt5=auhveWLK@s~1qd+w~klrX}}{d7h1Vq`I=>cD>A^AKWWDev>Ej4txKrOR$gE=T(r*O3YwPdQ+bw1pJ}hDx?$$dCGG(}1?`3&B0l7yXXnBX0 zU0Z*TKFsoX9W3ueO)hjKJ=P#@E`xem>tMykF(Gsim zI*VwD)w*nn(UX=~ts5<(C06UWMYP0fy_H3@#A>~>MYP0feW*pW#A-duB3fd#zRe<9 z;sO1>AX;Kq&n0z0C z+8TXsmheSlJ%%0J_|CeQcQ8y>t2JWt-0+deQLAGmj**sib)K9o-Ld&*DVdmtVsgJp z>}j-OIA5!24a|3(Px^DB)%xz?5prjUn=6?*iM7LdTQN&7^hI}RP=Ls8EGbFSWW&P z#4l18{f|>c)NTLEw8d&mspV{a8Os|x8+)!_Mx(RI-AE`=d;VXPQ!4*|YHlm~-)Lo| zm8s7*(W3s_lIF_nr*{3XT9j!g8?)j1lFQYnBLBbbUk^*4qN~* z^*7YcH)j8h(f?oX`=7PaP22PT^}hATnf3d~|1BG?FFELavUa*gTr;=k&h@#o|KwWs zxLx4p&%C+ux$4mBw=$EO^_U5B-D2i+7jKMFLYA`WaPDd?vnuGDHWMdTlmFA++ki(| zoq6Nud7hbM^8GOh1PF0J6apb8A&4j_A$&y;kPM;~8-~mfQYIhFO!!c26Ty~R=++in zwc2W-t+v>emUin~x{I&a*41`vSGVmJcX7pS-P*0)(%stX`v3jzbDo(e$pmTN|Mgzi z`(AJ0xzBm-bD#U%=RRNeIp;ZN=(kN;Bk{xKUw#QG$rJTldW`d7ES$=6>An6xH?B9u zj9+th`DgI11}K9|^JOWQ&j32=gMhdNQObz+$?%+NK4Zb{Wu*TYtXzDrEmoYa5A+Y` zv#P!n7f_v;r6EIgT7M;)(Y>zr&xIA__QNN{I?_ z)6$T!@cYX%h|wIbm_k3#Ygne|_olL4Y(fn+=l=|5D1SeR+_dBx28EB;TK4+2y;mfu z({C&7*D`Duyw|U_;nmV%=*m&YL?_upEu0b~XRR^%HO32VrBl(AUcZ(>Y_QQ#mx#{Sg~Pv= zdCfP(V*jN`c;m&CR@eMbNd4FTyTq^IQ;@_qcD~oYQf4CTJ=}gw&p~u7udX(WPBcdI z*YKV~#=Tiufu1$IE;acxQ<>spQfhi;q3OMTJ)_YzaG$gwT{CZ*L!Nq;^p@m8*LJpO zcNXcb&$^{=5^anHwZ=w=@(i7&e-=u4L&w4g(bg>Gh2B>GHAZNgs$=O{p4PcHzh1wNbs;o5cbfD2MXNfN#$Vq^$-Oe*x(=L8#64zsit${J z=O#S20CNzxrX5rzcq(!BZxY;Ub&oY!^{dHnr>Gj7ySoSH*2-~`Z9SfYxO?lMT8?Lx zdIG1Fo=~gttiiJu&-LJcz5FW&T#x4H|3r{%1mmbm7^G=Y4p3@$^B4KBV1`lZO5B?;dMA;v^AvJKQ0-d5T}Vl>z#3*B|{;0P}JD z=*elNIPXT-BCt*1^?;R-fcS{OZh_kc?iToAz==4o8N#>Qh3emMuCq|ZaGtYJeI4gG zA68$(PSY{qmjK3aCi9ruj6JQ~d6;4&P=z0?6+?>lDB5tW*51vrh4Q&Iu0FU7!;9 z4(x7`ryH1`p}crQ#dha=_2=N{>BTTY{qXbK&amP+&#>YN%dq0f%CMXR4XZUcSBY=I zaF%VODwx#*KPB0yes{^W)^;a$={jr3@aNgkF!VzXJWU%F{!zIhAuOjLNxvVVJck>G zJ{yrbPv}0WCQmE{{9M(it-HbPbJl&%MKix7@NvPEf|6%Q!*avM!=NFCXH1_|T}>x} z=bam2IWHPkJbxKhJj)qYJl`2sJiCd!;6!Cu@vLT8@tkQ`&Vq&&&xeK;&#xkPIGY+4 zJ;z0RDaCJ%9(ATq%d;PKa%PpxIJloeD*`mlNP@hc^RC);2d-Q zy6h{!@SBmBEuK27m9%Oto&q5};hYnm=deEYEd0D#;+%Y=@S5cDEeZ8mJhfG5{h(}` z?=8hWh6;pQfV^dbG^jTgIaJ_&l_kDvi8~G2i2CkUF9q-Q4XHil4+4I_{PVv1oW&C# z1!PUQ&v~=z7%u62a@tA2)THnEnl0A41<1>t_+IlHh+AfV5%78E)Qo@eO|YL8ZvP;B zE}Hoo_*^vecfKW%twcnXi1o+dY@<5}t41K~0 zi{I9r68h&P?>}`G&0G+8LHv!@>}eYiNA z3_b6A3B&(sV0dP8qs@CiBG#sgr}8%1ya{BZ&6^@3R_$d!0G@ksui4btYxdW1%Rp4< zqc-oXh}ygtB5L!di@3e1Vlw=9Pn`}(4rp885Vxtr*KB^(9JYBXXO+!UE-B%Y5Tp?2}yV6AodUXK%tt z@kjXwgz|vU9FSBF7#g0lIRu^f@vQ>2amePKAz_|Z1^8s*Jfl%i3 zh{$=w$jNg^VVgJVtU{^Xsg8p4V8LO7xw)aG|6VVkFO!ZuIkoDljG zLVrq9Jb_sM4LnmkB`Kbg6pz~cY9(y*giaVK))YQx^VW{%L?_P)hZlsybKo#N|2g6C zf^c|2IGh&x(?Wk*=uZpfX`wtTp=SmEy6`zG@}HH^*M-mP!snb&o)gM*LUT@N-jdw; zP(RTM9M<^?hqbyIm?gexf}iGa^sjJO&!;(Gn>JWf=deGib2u(9usMb{OWXxQzrf+m zAxj*#;#CgE+yxGA5oxscVh?kH!~J@;;#Z3nIJ{S6fx|ufFygk^?0c=^jlyT6!}~@y z3b&2IVWY&|D6uw5tf(`+YDIC}VJnLYj61wHAnx$oe+qm)P`ur-8;^j7XaD04$Jw~U zJ1q7f^dEs|-uF4Y2Wg+f6BE-co`z^d|4@n6@r#T9yO_|g4uG=F-tPQ5IH6>_Q#Wf~ z$!oS%wzA}9ho=h;A#{oF07j@g)dLRU5r;P>9dUSL(h-DW{Bn42(rfU;9s|w&B}d`6 z)KTZFmmG(mH2s3P7bF)iproF4UT}D`$_oy6cTWS~W*>Lh z&zu#SvqE#$;U4bmf_YsquRFYD<#mVqu;&DSPVna(-m-E|@F!puTpW1IAv|I6YwWk= zyLq3Fw@&$dymiXwLZAHU-+^hvGu@ottvAMa@?^l?x2xbVN*dKmrQ-PWtqE6d(= z@+VFzyW8T)^}DT4Hp~>bpv>~+P2C_cR#uC#;EuAJocm!Tec0k2`|EPLwZeBl^z*u+ zmVRSBSpL~Ej%(9V!#^tio0>jfR_)_0Sb4thPWgISnQvp`w*kLA`zgTh)&4EufzlTM zUq(Mu=6j};@FU<*W_MNm4CzMj)imL+1pZNAQF*P!ucB)$ehp2yLf}S$TLAgBGvP-C zJ|ys)<jYEhD=2@byv}!G>O1Al zz_1l;oH;Q##kZ+qaj?$!^TI||=i}F`bv}+<&q)1z#`^B0_XHRCcq`Wu;j_xeo48i_ zcn8-iAMfB=<>RefdG@A@4+WR_SWoio1L9}hTjFCKTjFEg+vub1_m-mnEyd8c6hmKw zv}c?sLT9NbWZXO@b^DaGg1C>jZ@q5uH1jlzWpvc$SB6JzenEKD=Dk}-ZGMG#)aLD5 zDIag&T4mdfe+<^y><9Mv@~6$J*yp1ay3yusS`n+acm*&l_lUHz2-*}@-DKVowRuBS zR4C&%DWf*;#i~WG@>s>2cK)>E6_!J8QJeP^SyH3oHd|}lX4{P0{Mv#e>AzJR@KJ_C zBEthBLkgUyRqhea4~PtVB<>!GyGP=ll^*Pf#5yXm_90eRZfeyV?%f{KoJBiFHJ$D{&u?xJM-QBa-?NBRNmG9v8_^hzzGh zhU4Jysd1-7h7;N^+)fFHQ^MhtaCpwgTe)8F(UN)2$6KCW@X?YvEw$*hkGFN5^>MU) zK`>{9@~n@ya-H?j@;U2cDLiLFWz6;Q>%`ZAf$b-{KwSmnO23LB~syM+-g6it@h6dY^a*%r_6PTi+17X zeP7MOVVYo?{gk#@I5hhyZMDIZf3=@qGcJ&Hm-tx+R{2>E!y;`nQf!{kj1*TCghkpq zKW`GN^YdHAjS?#=X+=fasH74_tWS-LN~~Io-yy{%#gx!D+Z=i0ezw6qevaUK{2aCS z_&G-J^K&fTC-{AW-zWGz4)6X-IlT2NCH@2c=~d$=9`f^Mszb>20ziH@@_?lBjHMdl zn4^7scHI83btk?}I^ySdRY&~%X6lHa-ym_OV-+9q^X{)BBF_;&ZvZ>u=Qwr5&%XDF zpCjo}(adqt%n8xV3DL$8hiAJQeN!9$F!2;*e%3kV=cx3Y_+K!PBhG2@pZ0T=BB7P@FXmW^Y6@RDr_ln=iCH`W8t+}M^6nI!LPYHZQpc4>E zfvo}~0`~?O>#+Er66oYfiUK2fjMXXrz2ZMC@F{_>2z2s=v%pq?ZTS~lhvs#Pf3Lv9 z0#D}OY<;2bDe=D|&?%6(0$T-cD!AGD_qtB;?-h7h;8Ox|;R56d32ZG)s%z$T7E;>1 z0uKxRDS;Ok5x=R3<XmY1DAMj>t@9aVNzcBkG z;Ony&)pS}-^(O%b>eWR->ty|+i#n~M%LW14FMIeRrlLZf)_s=^h3J0>{?nH|6k;8F zSTHBW|D^cOi2r5rt0|KfLQkia9?d<*`Q;$O6kIoc%fA%Q0aE?Q2W zg91+qR4a&CByf|!L4hX)o)M_pND~scNZ_ErlLFPX3_W`-Q&%hL_pPLVk@)wC|A@w{ zV(6fT*HglW1TJb9X$1}nd`RG#F!5)@!g)RYA%WA@6SGPDg91+qJR@+?2H_@fP~gc8 zO!wq_2;WfCtu59)))Tnv;^&rQSK8CyMoDS!H=jYCB-)`Tp zeJ|#|n)_Dn;lMuxrsQ3o*OAwi_l3MOdH;>P;x)lN|E2IXy_+zYA?g6c!a-F{Gg z0=XM#Jb}IM=9-g$Y6AUV63kPRzXSiRCB(c~|198DbLjudWWwLfB>ZmE-vNHFo^X93 zVVB^w|I(>{56mYe^zjK98Xfw{**`|;nugPW|8()ckh19)fI|)cp7v|XFAIkkr~Vdr zjj0f+wExAaltlZzsjm}hpAczZoccCs$}Xl1zw*$}oXLE7Q_*?UIr?=IIe#$dU~l^A zBEqvZd4M-pmjG@mCM=p+3HU%UDZeG~2Lg{55%W9o*H4)QnwLUT0PiWA4tR4lf5P(k zEPgK$5}LC$SHk~WiKQ_OwG5p!YZ0JM@q1Ov;BTrR{KJ$rfJH&V)5SLeUOA2M=_0~8 zv)(Hh!l#P})umej&(@LWxY?OpYmH5=;!d>IgD$l@YN;z-c1JHF{qaf6uco&2<}0{V1dwOxJ zF7W@u&H?^gfVT8iHu|AF_{XEa!o3iHHgj5WO8vvUu?#<7!ZU(&4x&?5t z)dARQMF7`Xoq+9D3^@%0+N#s)0*qSSfH7+u;1;U~u*>2|u@!sfw(7mvx=2WaD$ zV-5lywEhC{bJpE}hpkTl9oDN+ z*5?6Vw7v-VW9w1CpIToA#0^w{KePT4@FnXQ;6GVk1N>*}>wsshzXE*OdIIoYtZxDS ztMzTbpId(e_zUb1+nBdL1^DmQ(}0%!UBH0-3}Bx9EMS5CeZWHd?*NPJ=K)LXzXuH2 zF9J@ne+)R){wd&0`)7c&?3V!R?0*KVw_gUl%zg#1!G0C6$^JPsGY8OC&Gu`6b8Y_0 z!{vbZM#}yb;4=HyfGh0Z0CwBI1>9!;4lrr|7huYM6L7%(Bj67EZNQ!OJAk`v3+-vQ z?Ev12U!t(p9y=HCb~_L7{dNK1U3L-R0sLk#PyUv`f4^M@|EB?MtYZb?e-O}CpRp?e zKWmQ%e8`>v_^>?*@N@QLz{B=MfJf{pfSEM91L--%V{TC8Kz~lB@z^~i$0KZ|+2mCAhD!^~r3jv?7uK^6GDad1m zw9RqSHmjs<)=1k7N!y$%ZF8Em%}b?i&XBe_Q`#oJbO48XX`2nwHk+hvHcQ*Q9Bs2w zebDX%+;7JK@3Ol957^y+AGNmue$4KH6#33}aQT9>67Uh{I>0YEYXFZr*8_gVX~%aj z3E$0tDc>z<%{$=7oxSj{R=2{xTJ3>f4h1B{;>KC{9*MF{5RrG{+j_G zhyNz^RrqgG$Kk(4{ZIIBQK#U4ulf%B?^WM}zgIQ*SHik_kNoR+;y~gge|HA&1{iuDy ze%7As%yQ;C+nl}5$DOB~-#BkN<9+jdYkV7h-|+p&_m94}edGOe{TuwZ`@iUa(Vv^M zFlT4Z*K__WXJPJ#a{no}IxsuX99SEO1-1u<0-p>#7WnJHnZSPr3i2l8)#okCTa&jT zFP``Qyszc`F|RCtbN>7Czn=fg{JerW1y>d9D)?N%zZd*x!J@)&;r_zM3%^q4t2 zuc)kOLQ!+k=AyfbzFhR}qVE^ISah!F(&Col^~F1je^mUh#U&-tl6cAflA|Tfr3*@z zlwMc5zVw#TMCo0nUo8FW(q~HFEd6-dV`bkhf1^AQj0F3FJAh2`^3f?Swy0D4BTC#2Y4lYU1}MK0omvCt8#8CY4Q^Flovp-ypx6 zmG9U9`Nv=RBF6oD@1#HA3&xSS-%J>d`_c5#xD)t#ZDia7>9`gH z1)lkMuEeb7D)bo(U@I)dgWJQ=%JbDCJS}(@<7tKMumsOiJj?Jb$LwbXo;Fw$*TR-q ziDwm_>+r0`vj)#vJlEq{ho>D+7|(jxC%Cg3H%^zLrQw&|@Vp1l&3HEAxdqRA@pQm4 z*@P#8XEUBoJW_cjIA~pW`)Xh>> z-ecZ38aH9+cfni5IZ6-WshRaR~r+;*T8ad5#spDJG@nn)kVQx8?o2f}dyb^9+8T_1yp&%(H$k z;qy)Sd=oz3gwIDf`=9yN!aO+YDnoabp}We^U1jL50-ayzHVFMfL%-0_FEsQE4gEqx zztGx%-!)Ncp>;swU1Q>1W8z(7;$36nU1Q>1W8z(dc)5swjr9eI-(uponD{Lwev66U zV&b=$_$?-W3*u8DEmot{&sM{y)$nOGd|C~kR>P;&@M$%CS`D98@S#Ah)^g#u)bLws z_$@X3mKuIb4Zo#^-%`VGso}TO@LLLgWVqCl?5gF4?{dR;x#7Fq@Lg{BE;oFa8@|g8 z-{pqya>I8y_!fZwa_d#8XKjXmo8jMP__rDUZH9lF;ooNXw;BFzhJTyk-)8u?fj>Sx zS8diJsfQ~~Ix9^&D@{5pO*$)0Ix9^&D@{5pO*$)0Ix9^&D@{5pO*$))P7%^uX`Pky zZb5o@#cyotcGQ7%`5rOv5hF(gauDBX@SO(VY2@pKd<>77@R$jYnedpAKL+_p*JbFs z3|*I@>oRm*CZAo%C+WKleYc_SHuT+wzT41u8@+TxFO0X%#M@@#Z8PzfnD{*=evgUYW8(Li_&p|mkBQ%7%A*J6K|XzkPoLq_XZZ9PK7EEypW)MI z`1Bb*eWqOdP_E>+-SFFP_-!}*wi|xi4ZrP%-*&@qyWzLp@Y`L$O5=_Rebv@> z&TGb0S;j}?}~t-$kj`{}}o z683k6)$;ydg;U{9!}C$6zUU6Sz9O{y*Y*8_zpNgy(JRpUP`}bAq#c?ZG0fq&lj_=GFKzZp-h?|l=C zoZBYe?t2B#Z}2RiROhUp#1k-6Et#S$8|dxa)YzcHEr~8T5rGTBiQP+kw-3YyVlBzt zy`5J_J35*g)Pm))RBK;va-au4dB3!GpeL4yY>vkmir>vyaP|C-j>d)#_)OfZH@k?{ zeTkk(y!+Nz26c63N5_)xWPd!eyEPt3CUwk_*e2mu-HP+i2>FoqE%5vw)mSmU?8j+i<$mXmf z&CQ0*ik#;PaRoig5`8@scSWQ(ib8-Sf*zS=L9QFAyQ?=6Pe%rZB6#0Xb(X}W>QKOz-rXYtP2C9hjRh2wgkcrd)h^6V5?&^&76Mdl(*2R(o z@zlFhx9?7-Vm$c-B4uP}>1r<ba<)YC*Sg zJNtSzclXAk;l6FLUW4;?HV|z|Hid@)7NH3^e+QY}9DL+0c!bXUC6$MvHX0 zh$pM6(Wj=Vyxk-U$BpboL)}DYD-3XIY+~T(mWQBbm)jNeK$J09Fj&_o#U_?%M!K93 z+Ljp+@Yb>u{Q^e^O4*mB4_GvvE!|xM36vn1q-hYcINsN}4a3Uy9CR3;;|{8Obf7bq z(1T7a;Rd!zD0?0kvm~}9f|is8kFE&pmhOo4rqB$ef57|dzEt;?-NSRz#-5=EbkedZ zgY=Z}w6*rd<1zPbT`Uq^(;G)u;z71$<47LN2h+JOmfG4ET|CeoM?XZK(d#0;kuL3D zx_tn{V@i6bNJ4OF1sMuG++rMLT(=*9AKw00BDLFt(%I@wrXszmB*|BGCsS}mmSqtR zrn}wORgqiimo7qj2*tsz4ZRIp%e;<`ory?43a)+Hf~&9S=s+n&;z_qEH0gLv60yl! zeIzL{44PD1Z)y$#Bb(7(=^iyM8csK21a_ihO|e14Kf2cdlI^-l*FdB?fRftOUYI2aOYy!8A6f+ecdTCg3s+B8{HYteG?mV|)UV=rWkbxjJO7 zgv@2gT#Q(H#EG>;qp06$HjS5SV%NP~B3;f%Zpb`MF;7C~F=U>%W6rR;LQFH${%9(( z%>%h+Ak{yRYS|I#j4sm^KQyaE+$75?F1Ibu49eRZp`syh-- zBQZBXPzOwTx?&*8tLtdMO8wIViekR?jxyLBUt{3D3!tZ*Z0OX z5*=SGVf;+mH78Zl`(i>C$I`)L&qZ|MB-510m&Z(1oyJ}jGEIaDjOvKW7z|%JE#17; zh~{qCn?Oq0mNYMn*_OP4ExHxeAmuVMZN`*%#xg)S<9kL}U}V5w-ymmV!<;M3QS0u^rug1IhSqF@Kj@6F zM{Ft-Z_LzOX>nU3ct`()VFxpK74GvEniw4vTidNlSLRjSy=cV}X7Ez&y@*jv453GH znD`lFQYJ4Ls&@9u6xtm}RL6jxQ!}$GBFU|-7~(|s>riW94T^thBGH#{5li}Xr@xLp z6gal^CSmUBH`Z{d3)4>NzhG(Yz{Dusr$*63_x0WoNpy4kVk_t!f%4ewlt|mzs1zAf zUbSTm`1AH0%Mb#<%@t$PPLsF>NX1xb+Ir)R!91^qxuYdW8iR<6 zQPSIrk3{QYsewdq`c-;Ft*AsA2_ph|#Hb?}qhOUHvkp`gg>@~!jvfF}Yas_5VaS2uQah-#%u!dy*=-Z(6^q*96Q&Cqe0 zH?+GRZH7&4WT05Zqavh*$&il_C=<|xAySgkma2?yZETdMVRn|+@Ub?G(#3Bssa5JaG zD3zIsylW&g2h)+<7iLhpKlZ5F6V*#R`eg?VQ5B^H=Ixcj3A}ICJ(T#zoE7Ln)$O`6 zhF7v)&l=j2%er^PqV2H0#wMbaUc&T(>ex}*dZV#jYqqFxIMRhqH`UkQPa`ajHzTW_ z7y+3cZuQE6R#MY~&+qdsaHu8liP3NXj+K1&gL5y&nbvs?qh!im7PE z%*tgmM`B2G^H>&2x&;X$2l2GX%BR>|6mus!55ZFy!%*HkI#Kem=*pNZj>2Y?SEJ++ zSgoWHNUh*BGR4$5O_hzK5$fUm7y}Wd!tfG97aku$A+;dg53!G-dc@{brq-|7{5~wr z%36_&@;2wJ!QKTX(dl)OUEMtcP`*f1L~U#eR!^Z=(uV>v zK6J<8>&`@#4T1Kp-90cDx0q#ed1d8m>F+@oF@UphSoz12kr?0YSmlxog(KL{SJ6m%fzN?@j?924Vg5+()wya*38-^MS%@$PMgcBUB+9nE)(5Jlm^CRw?w?Xl9}d> zT*#y`jGs-+X0>Eu*BdH5PoqiiPNl`4o&(C8OcTY|AroQoYUN{R)Xk_t*t;N_ouGvcfkTd&Zt9IOtSzTHIyRe^ zBy0qvwRvC*1_#XN^ble8&7@o5R4TTtFX0;QA})F>nOtST8$sK8VcpA4dKMZztjThf zH?$q{>h(C8hgtjIYM-qu{ymV|f9#}u#iF$gs&MY_&3)804Fcb@_ zo#QcfRCG~LV;PJn(MU2p1bwQPP&d|=Ef{cNR*u?)1r|z^?w^Pt5Ka2s#hSzltrubCNSo=Ze7Y$-1K%&y=UEtV>;5#Y+hxH=b;}#EFW#C`c7_Y z>N2kfIIW~>n?M|At1*nL2 zM^ef3D5=6yc<5J>SqoYMOp%$T=}d$XW?v=%8rECa++Rzgfi!nuhon25rSyD34A7*s z0M>;hi`1VQYq87>eI)5Q*O%17sy9{bDvY)9>UkYS_Svs2M;oMM@<(d-hJv zA;ri&U9-11jEbz&v-n{l9sQn(zG)rigAUcYHP*RJ3@O)w(OGjhPo(RR)^B{n<}R)- zu@|Kkf<;PrS=Jmh;dLkREh!EaospEL!|zD@w!6-)s4YY@AaCnb}aXH>d4s5 zilx|>aw(HtGS{0^S?X$fWIzv&FWgAfw`Gga>MsxVc6S#2!Um)enbA!~Gu7AMK?@u^ z>uE{wmQt8(_3hMMC$^w=nNYLHDH%4i;x(`>(tUHlRWnRO&Eefsi>LoGr5}}%m zKdkqK%$uy88^4)1x*?b`8SnB~%J_75VqTy>e$ZV*eup` z+WgL#9Ws<@JNMn{rKuU&$i`sIhJKz{u6e^s?VJ%#7dMzzn7nm5V zQS3Ns9LPO^u$l3N8EVcjY|B6j3wCLo+wjR44{Cy0zSA!v88>nD_Y2}f-9*U7(G%IFeK5fAC7;1|icnb!-1EUm zJuBS0zP{|;PiEYdlE~2V1A%NMZq{04R~Gux+p|hOc5}(opX;%X>CblcH+j+|6}LsB zm>nzbOTwZM1l{ZKS7s7l59h$otu-Hf73x2(X2^S&W?~CQjB8H3I8RLqD=)>61x)!@H z9^+cix7>g&`dd|r=?-wZ^D(0x*97<}Pdc#E4ZyfB(;N(m5`Ae;KYYW7E2+8Z34_-6 zh0$rXXxhxjMQai$d4r5&vzo`P$~tjEz8_B~&Zehunq9TDj=+R)CVl|t-%~gVzZvJ} zLpVF1fExiO244v7R=oAX*MK`YR6zvT1Tf$>sU_{_9TrK@^nzO)|5WP|#3$cw;K;2T zr|!um6F&sG$hj9Gne<%_NNdf7@X+b@;oLuE=mpO{ktzlsxia7VkcF}{JPQ9Vr7mfM ze+SZ!BUV%-kKx?E=AmgqN=*-eFZqR#mpavmCmY|acy`kVx)D1;>gB_!BjC=uz&4Wr$8MB1?`9!KSRM$`vXA0( z{ct{PK|PRthe$a#w=GDe50qIXyKFeeZb;AxYVu{xW6jQ#A96B+o?1FDeQ>ErM^0?T zUC5m((zT}#_hq0|*DN#Ir$*RI#6e4Ku--!u@*wqKmiT2%Zx?PaNw=<>+*+nXx+UK%pNy{mlpga| z=!7MV@)`W>g|P0Fsy4hsq`F5o40by#1a_7^(s8qk(w$&T3dpS{ED9EoZdQ!LtgwsL z9i;A-Dd66vAk!^Nx2`P^rdtSkyJUtzzvL;3q}dlHaGMNS_CiPsqel%dAC4asgH&v( zOq!#ME_JpzU4tmZgG&(Ljr_k`2v$T65?MQ!!4JKgj@Zwzr}@)#MD0*Zy1%#(Jso~G zJ^k+xB%>>Km#kaEy5jk*DDaUDo^-4LtP+et$i~(W1#noBfx2w1R55LeucES+q{#YiZQD>e+3HSN?M4qj{CzIUK+1TgnM3 z%NMe&fFGc&lHOthoA2cBB+42gDN*R*#lnw*QDv;#yeef~(azj@6 z;6bDz8-rB5YMN@kgxkLa+>!2K>2BwarUHt?E+TA!;E! z*MVNEZ71JCf~surKEWKUwh@0-I)16d%ohlCA$}DS9DE7ob5DM*uYB-SwGA(E4-*Gg z<%6$|3nAnl7YE*DLw5u1&m{>Z18r$O+z0LQQlL;Ff>abRkhubk$@Mve6bli+V^%c@ zwQov;ku?4Ibhj<&pGg6jU0R%o&tKHy}>u#R`q6HF7v@aQqu*^G&tiF=zf=>H=%{7 zxE3nG@1WQ>10g%es%>d5zc*ay`f@;%4^1K-^MZINKl8$*h^z=vt=4EcgS z9Ts%T5jr7 z++ePkE|^mV%1iPxlr?@sTM-Hb(Vb9c$nJv-Ilv+@jGjYw}Fo>QG^@ zFnio!!BoVaUz{y=O}>d=6DkT8jTJvwI1L;YmSpEpQ($<6LdC)2v3UfGE(MpC(y_SI z6dFELLnXnI^YIB5&j6>TWn*)yDKfmKg-U~^=jRnH37FQ-K^Kj^T57#2%``(aM>Iin zPUS=FE8n(kG%Gvc%PAXLpQmga4*oOty_Sues^DQm*6eJwtf7cqjrNBcd$4@yCi7lx z;yi3s7loX%p<56Q{%X5GJi^2#kH?T!$j`wLqhe)w9atB^9g4X<2fLs2i}X4}6(C~5 zbfu?z2_AMgFS(ISH$=RSQe~phC4UboULHZbI;)x;N7)cf6L1fsxgYd%csPhRjyDa3 zxek1f5mk+xm)%HTNv|Z42TcXmYLjSFr^~@T9=^~ov-A{ zVud)`qXlM=u!R0a0kE~jg>{2rT)1t5X=21%053TaMVo`R5_6KNLT*hYMF8?6xW@2_ z!Z(5sQCbiQl;lzwGUQXIN1R9bZX}`^oeBYOiN1@zbiwH8#OY+{W24lJ+4_g}n|8lM zx8$My>GnUgALcK*29mHB7}}ri1sH_)eCc+j9}w@*o$LzGH)u}W9a7U9GNopipp*y!jMs{(bd{zun+zY(CLgR3yB=bV((Qlyv$sYa|kC9fR zCT7fWL(QrrCb>?C48eGauANg|!u~J-EsGUtGmS8kMhB6>qQ6g5R7(Fzi_?RYuJ9q? z(Aohf8*bxr9oOq6#@xu7jB-Q;GbJo(kCRS#B|+xGk3(s`-sTVT7nG8~iqW zwhW0!WwMDO4|6Hzdhk9PmJhN!u*YLUrc-nw0-ym@0R&@`hnL|Yd9YT82FOU59}nPt z@M-*~L?)%Tjr;)bK#ZOEiT~X3$jXz`X zbg6--CGe~c{Dldm%dCr-Lhw2hxYr6G0Tw&FK{cJj;?NtQW#Mxo6>vRxH**uJ-%v@9 zA#`~;ZgoL!pc|AQApT3{UM-V`f<}Y_1`_tu#9=c{W;`8K#Iom%GZHCZ8V_Kxi3mSxG2DGbhHi*G{ zCgUkI>R{2`gI|=_q$Vm$)OgF3_JK;5^F3&W!-!qp#TiN_K+PP7W}s58im+{+bKBNA zsVl!1_!cMIzamFH!js8T3C>W`zcWR)HglL)m3x(emyV7_(`{o<2I1g;pk(oNzO$zohW zmkGZx1(gg{nmP|1tM=tL*fuTC(i*D_`bl#WOSLXH527;du~RA=8Y&yQ9qGaTjSpu* zOOw6AL8ufoScpXP9O6(mgxfd)(Q-&L8H-#xX`Pq|?xy>6Wk?(H8X;zln7eGF8V9=t zInDT=G=3Vt$fXXbFuBujNSP*Vd9IIYdJ=smS+E0T9Qbrpv3eO?Vq$arr#_}bGoT(z z{b{8PR|sv_bk6yLOO^xqSTsb*(zw+9Cau}aa`Ro}*r`AluJVVcv%;GWU+PdB9Elx*Od9dYW=`O|>-?a2QjPL`TE|g#X(#Gw4T>+8oAI zCT)ugkpyG4N4gk|N!Pj{GN)N(YND}~ImaN<@Ym|{ygccK7qh*@3XkiHbmJ#r4=hkTN_k{n>XMRQMrjZW?g2*+C?Rq#L|iptn`SoNPkD5n%w{f z8MJq1>0vY}R3W@^4gU^YP0TVn1XgtKg^Oh%WJOGBv5Jl`48of>aR&#M3O6%CCLDDk zOK7Pn29}`^1mVhPs;zURA5^7Ozc;#TdC90L?rb15d9wZ{`XX~ z^I@%kUrGmVy5nM=#ny6%D{MO$+9IPeAwLz65d#)?jw0)qnbHrLW4J#t?iu6$!nkk1 z<=|pCW*H-%Luq?;fdr2-y|zptCNL4iHnszq*OLk2<31r-h&uR@T?&1w5S^rj)oW_Gj;yL(a#hCT~?~fgZbr(Yx%6oS#)q z{@T()PLWL3-gS%Q-PqL>giDJ`G7K+Zx8&Vf))d}YT8te!SIP_8IJpqEHP|si_rdK@ z>Gj~E$DBYM=A*+}w1gK*dqyDJvhGCQG?VS2n~F_C#w7eEY>aSS288fq`9SGrZGwQQ zK}*+(3~%L@-o0JyV7f<|bR4_7K)M^=Q$WWA@fO zjJU?vgtn~7$7;tTBGmXVM=RD*#%{r*BGu$viT10bov-a?iCB|+HCnEYdj3|MHF8a0 zG1{z-{%-Ac3EqdLBkK1*_3QHLDA2o#$m%Q@9Ro zQ?t9!cKI$0Yl>hfStYOp(H=+a_KE4kEepMDftI8{3xY?MEA(z1hIwNp$>0xD9Gql} z2^$=c6{aj#H;F1X9yAb6O~^$1Cc9%X=MZ}7SNmkuuS!C*1YogCkLRPKRZ7svIMta5 zkieS|@}w7~N8=}CR>?*LR!GPQBup0AYZrxlUbVnn6(tSrH@b4wI<()YRXna*hxXI( z8QNcDl!@pd)2qa???KxQgF9?DE|!aSnVVI}69^%f?gL$1HIOA~Gf1!3>%Nq!WBqXG z5qQ|i!hzj{MWUhg_<*TAj-QkQYFNBHy6-(qVLGlaW^8eZ6hU^Bqie!P~7 zYPf4;gySk@Km20zp>&`f6PjKMrRD|)#d>TuJvx$rT*CU{a;yb1t8b^7THwRa!30%4 zbe*urE(SK)u^Iv?T;I@jMNktfCL?3*969Cs6vS|m#U27of)SGx@RfT4^t$QOMLN*D zVfF#W+;%q}eB%bYQx>K<_oGQmQsZ@V_6&?-6qH+dm~()D#&M}0%*;C&p#qMiGQ4y? zm`%1cs48t`Gtm;nOY0wjESsTYH;V2FKMEh*RfwAks^T5KCBrFxk=Kq4@}Qg{J3(8x2Soh|GPt z6D3t^@MT@Y_H$QDq(^&mW?(yty;Q(A12ZJNR^y?YkNGC%Co^PzLinoqpYg$8l{bT1 zqMWt?iGIKzV1uMzAhIZUVzBQ+h(*~Ms+jRuRWRL~fxUW(Fo?*Q1EC2@5WaHMo`B%* z!H@l!D4@n-b1qq+SiqpXA?7dLN&%;jfEe74%_24 z;4&WEyO}=ni}S;{;L`#fr`bwfYpJCzp{;V@KNRoYoQNcLhj3&#G?2up-cV|5EW}e` zvp3_~(P&5xYVrIa4y}jQMpC>sEHoqBvbGkV6$dR<+@6Z{<1Vd`Tv>xtQ4=gx;XUgW zTBVavY9@X!ou|>{%E{3Gd^FV5(AYQ|U|wh>6F-*)RKBJB&GilSjYp~lF!VuX7M_jEMx}v@zgIc>4cfE#M`gtT>&O0X&-Z(P6y*rNERpd;z zj*dGfLN`WwaFuVbQny&Dj)|?sO-nq8SZ6N$TeyR%epKwwP_sFpnpQJ@d*uHQF3{1R zsOC|ET%lCErB+{{ZZh}G%*y_2Oei`2M37o*sg-{QPw#Qvw6gefKx)0E*8Uj`M;#7M zbLEc*{kd5me%?6EQhw4%N`&o{>%2dRqOP~ps$nrjIMn6gm#ohk^`le#F{)WvetARXS<1&7nUum$ zNnhH^%M3ybL$`_N_PUUJ%2{v`ec#9JI09^`aUzG?VasJ`a%!IA@r1T0BeX@qLGEGU z8?RqM)XOY2b95GlUkfqI!)}eGuJy1p7Xx_ig%jR#SvXSjT;qUq?B=psq3C4Rkp2uy zT|7Gd#rpCzZ^E-JHN%szXqwl$YFy@q*m`7BsU}O!9?f=i$#`f*VpXAHNp@Y z&2!{kCtm&wEp>%Q%u!WBhmHQF1YNJ@SPIvjnO3Rq#MbYq?6^TT6Xf1bf_z_LsX3!% z9Lp&2)X2e)!P>mbBkXxgst(px1eYbIWq`&!7;mB0g+^UxWy*gP-WyG+?CRF3WbRe= zs+-pK=**{ob-+tnVX2a|@Zy2;sPJL&&3zBj{?j)%z()1xEo`YZ7o@6;$fndI93)0& zN0&ToOl}RP|5EEddLv&ro2iEN`IEaW^^>@z*0nEbzxLY6CHueiht(gt|KDfs`Nn64 zXq>iQxp4z7@82kbFWt3K-v_nPo43#mnDoth_HYFz1ZxGfT+vv&5rfr6bM^JGDE0l( z&6MK*jKAsw+Dxakm(w50F82%%9e$_075z~>ejTnDR6WT~OsHb@ycn5(?_2^NrP;as zKkWZG8nC1gt1!bJF0-E4VS+OXPr4O&ZhXj6KlJfU|NYPhJ6+wN+EoYOQne1gHnj!^ zhCAS{#v$M}Lilapum2k>*zhxQ#=S;DHCC@w7zCUpLU{v@5huV$pUUTL4ZN#^f766l z7@<6VoW$Yd%$+MjpdR-%AUO*%;SxM^;(j!zLZNBET`&4yGcFf^4%88(YMJB2nX3gb zgGM9ZRRnPyW!5MEd7sK=kt2Zv$eG(jc(B^NDZ;(JAPgy!xNTy#+|0qF;5>NW0^Dvn zM7BYb_^wWPz#g}gimp7zv_ZET`QSYu^&UxiWILo*jgj|y#90biL#i3E z=BhgQHi$N&;ImWmM(Okc_>j5+R1I0F*2*z?9uudY`tgtY=Cu*-L2~Me@f+VYemi2u z74IBK2$wGK=HdBF>eL}imEyxe+^i3%joI`;lc7{Y4MNw(Rv)evnb#Qp%sEqa>j&R-&AJfTuT_!tD9r-7+I&N+Xik1 zjNmo01Ty-E6)0uJR;4dn*o<7TWsV((W%qya-=L)mk-ZfQ{x8ns|I6B#8u + + + Nito.AsyncEx + + + + + An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.Concurrent.dll b/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.Concurrent.dll new file mode 100644 index 0000000000000000000000000000000000000000..8f91a729a66b1a841138bce7b2061468afd4b8ca GIT binary patch literal 27648 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 + + + Nito.AsyncEx.Concurrent + + + + + An async-compatible producer/consumer collection. + + The type of elements contained in the collection. + + + + The underlying collection. + + + + + The maximum number of elements allowed in the collection. + + + + + The mutual-exclusion lock protecting the collection. + + + + + A condition variable that is signalled when the collection is not full. + + + + + A condition variable that is signalled when the collection is completed or not empty. + + + + + A cancellation token source that is canceled when the collection is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection and with a maximum element count. + + The collection to wrap. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection. + + The collection to wrap. + + + + Creates a new async-compatible producer/consumer collection with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection. + + + + + Whether the collection is empty. + + + + + Whether the collection is full. + + + + + Asynchronously marks the producer/consumer collection as complete for adding. + + + + + Synchronously marks the producer/consumer collection as complete for adding. + + + + + Attempts to add an item. + + The item to add. + A cancellation token that can be used to abort the add operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related add operations. May be null if this is the only add operation. + + + + Attempts to add an item. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer collection. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to take an item. + + A cancellation token that can be used to abort the take operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related take operations. May be null if this is the only take operation. + + + + Attempts to take an item. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + + + + The result of a TryTake, TakeFromAny, or TryTakeFromAny operation. + + + + + The collection from which the item was taken, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + + + + A progress implementation that sends progress reports to a producer/consumer collection. + + The type of progress value. + + + + The producer/consumer collection that receives progress reports. + + + + + Initializes a new instance of the class. + + The producer/consumer collection that receives progress reports. + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.Enlightenment.dll b/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.Enlightenment.dll new file mode 100644 index 0000000000000000000000000000000000000000..e21d38061634f706ea0c7ee7b647fec343d0ba07 GIT binary patch literal 8192 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 aF`V;{+W#a12rU0!Oe=5KAGHr%1pWnI)oern literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.Enlightenment.xml b/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.Enlightenment.xml new file mode 100644 index 000000000..db9ce6e4a --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.Enlightenment.xml @@ -0,0 +1,18 @@ + + + + Nito.AsyncEx.Enlightenment + + + + + Verifies platform enlightenment. + + + + + Returns a value indicating whether the correct platform enlightenment provider has been loaded. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/Xamarin.iOS10/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..e414e7a28bd04110804695baaa20590f95d80849 GIT binary patch literal 96256 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 + + + Nito.AsyncEx + + + + + An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.Concurrent.dll b/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.Concurrent.dll new file mode 100644 index 0000000000000000000000000000000000000000..aca25f828a5b3836321cf58c09e3502d8e59af08 GIT binary patch literal 27648 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 O|EiMzE&Tt12mTk?mf>dr literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.Concurrent.xml b/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.Concurrent.xml new file mode 100644 index 000000000..497b59a89 --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.Concurrent.xml @@ -0,0 +1,401 @@ + + + + Nito.AsyncEx.Concurrent + + + + + An async-compatible producer/consumer collection. + + The type of elements contained in the collection. + + + + The underlying collection. + + + + + The maximum number of elements allowed in the collection. + + + + + The mutual-exclusion lock protecting the collection. + + + + + A condition variable that is signalled when the collection is not full. + + + + + A condition variable that is signalled when the collection is completed or not empty. + + + + + A cancellation token source that is canceled when the collection is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection and with a maximum element count. + + The collection to wrap. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection. + + The collection to wrap. + + + + Creates a new async-compatible producer/consumer collection with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection. + + + + + Whether the collection is empty. + + + + + Whether the collection is full. + + + + + Asynchronously marks the producer/consumer collection as complete for adding. + + + + + Synchronously marks the producer/consumer collection as complete for adding. + + + + + Attempts to add an item. + + The item to add. + A cancellation token that can be used to abort the add operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related add operations. May be null if this is the only add operation. + + + + Attempts to add an item. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer collection. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to take an item. + + A cancellation token that can be used to abort the take operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related take operations. May be null if this is the only take operation. + + + + Attempts to take an item. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + + + + The result of a TryTake, TakeFromAny, or TryTakeFromAny operation. + + + + + The collection from which the item was taken, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + + + + A progress implementation that sends progress reports to a producer/consumer collection. + + The type of progress value. + + + + The producer/consumer collection that receives progress reports. + + + + + Initializes a new instance of the class. + + The producer/consumer collection that receives progress reports. + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.Enlightenment.dll b/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.Enlightenment.dll new file mode 100644 index 0000000000000000000000000000000000000000..b22b8e3808917cabab0294c3d34ea534934839f5 GIT binary patch literal 12800 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 + + + Nito.AsyncEx.Enlightenment + + + + + Verifies platform enlightenment. + + + + + Returns a value indicating whether the correct platform enlightenment provider has been loaded. + + + + + The TaskCreationOptions.DenyChildAttach value, if it exists; otherwise, 0. + + + + + A delegate that will call ExceptionDispatchInfo.Capture followed by ExceptionDispatchInfo.Throw, or null if the ExceptionDispatchInfo type does not exist. + + + + + A delegate that will call Exception.PrepForRemoting, or null if the method does not exist. This member is always null if is non-null. + + + + + Attempts to add the original stack trace to the collection. + + The exception. May not be null. + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..55e19452a3f39de0004259055f19391ba7d13007 GIT binary patch literal 95744 zcmeFad7Mu#)q8!UTU0p{0WJM zQ@i5Fbxl8|;h5>OXUFF>%$U{CHFtKy39}o<9e7B?De;-J1{W8Ho2=-A_E2g+C!pp| zxM)&3xA)Y*hC*kkQYSk~g$(tX3lMHV_&WGXl}cC}y-A?{^7kJ2pz|-FMlWVm{>%6l zl7zoGkb58lkUKJufnI-4II0MwotHYQt`}>Yu)$YdqJ@C>&Pp(N&a8QJfL}Zb`hq8A zwR)$cfjn(+SEB0}5JWfVs9b>A@U#9#qq+un%{n=bh}2aI+S4AgiZ#04dZwy==@KDHb z^sroF&>NdW9VbzP9-3cxGXZ;&2vvs$6ynj85pOTh!c~RZgQdbnvD#3)6@g+mP!J!F zKzm+(d9bH8zj{((DBc1>M^8^U)b57j%>WxJqmf|LK|9o{k80UYg=x%DI<2E<(V_zt z9`cGIYeoB@IP9B|Ku2lUp|s_6+HzmWJJTc#2QE4x=z9BsQdJnM2n6#d>3na0z?*1k zDwFSa{@KXWsv7cO;|NT20OEw*%1&Js)vm|#R!2uwCD0SX%{p}uylA~CDhwG|O=;f2 zpqhNECr7tWQ=woigD5vTN(X`_$sraRG!dwUaYe-oDKslCN(iI(L%ENFp6Jh+a;N-q z2jYhzTF|Ir3LcKNsQ?PWVvEe6J1KrRKu>XD*ON$@pTNixKGUt96n0I*&X=Vwl!~hA zF{-#P%o5g7*gQ{cj_g&SYIrc9hmGutIO^2eWo3xcT-DVd;D+Yvz=a9m8=7mn#tNaY zHUw`nGBS`MlY>LX)uoH|H^j*)R;4DPuSs`9b8T0r5c=hm^GI4X8Z{=Z+T=ucH9_s60>i*Z z=;RcH3^u&Un{>2ACpiRMbb_&wt5%~td8}^^8dH!{)}RqE>4p?`od8B+D)S7a1#~)5 zGo~Pqqrqt(W%H7JCl{J{Mhmwp-8cb9gKm*T zHwp*=m_bcH1g%b?d>Wztleq3{<>;~k3_E$KAXlab0hPDn`Q9na)9*cvciV3HI;TcT9c6jQ2a zEHNO$r{6LK;J&>!F99K$Q@`9OG(JZn|pk zL@>9KgkvGoZI(~<Aca%pxS5K`l$9!0@>6N#vWIFf%q=lqLEi~ zO3h~OKiLm7?>Q$n^YdG zo?M<68)nl+f|0x&VSzLj#YA2tk4YkVm7UKA!om13=u_^-8Y8YuL*@Balq+gP@+A#N zJVcP$=*^y@h})hI*o>qbY(*hkTPbF4TCE2E&MYCyVT*TQi+mY}tI-~5s1}EzKZvp6JR95!Q>t}?ZBwpn25U<#vb5aSjacu*&}PD_OlTA@L4Ssu|zrpD64Epxonz}HDiF6s&Ax4W*_1gHj_cM{)6_jO&KiUPs;dICt2k7GQG*21`{OCKpDNKSj9TY!V70Q zIrGSQnjC42T%+cxdtnDC8%cZ!2D*C+-96~)B<-BS$|z_GmsQ87_ z*GN(w$uwGE+s;6B`byJwrs_Zym(Ff;M`71L{6Qw#wPm{L1SmV_*1_=6KCquKBEoKt z3^(2lUE1?qlgJHvYiY!Rx|-V$6TpVU#e%Rp;2p#e`%FNgxk(!fbYPJ-p7hOHN}%D# zAAdZ{m}v6QQfr=aL%?u3D3D$(rVTqu44by#evv8xZ zTD5Prll;7BwJp)D)pBiSB8ts261HNqBhqqV;7nw0(a`LSB}Ff4ip`ESDRv`n;pjsRnrh-f6h5r@Q8e!+@kb~_yX{A$4fItc+amA*g2w&m-p+ z+Y{6F=-*=UOHW(aJY?pu;|abq7z>*TxG(W7_OFZl3rpFjFGBA2#rK2 z@pC{y`{~9mJLoM2Xo((c(Gs8z?9wPW{sTls|ERe@aswEZF`D%r;jBa%;!LVQF#bK# zwJ{vtFfG(Fg0DTTJ|w$3X#M~ zC|=l2(p1{J7wWk2(?F7JdcrwEO?|nl?|_V)c9acmvzHvKm||8A7HzS@Y(e>U>~~dd zLt0Lrf|V8eawHL?bzD&^g+*@AP123CHcZf}dOua&6Ih$V$kRs=`p( z3oWM^W~I?g`66oKEQQX5$_Ttn7bV+8zZ=`h`RAF z+468Yz_v!8cAzhv0VDNnSQ0Zxm4~9a(NEJoi|ruQ4{>#pZu|`3_;Lu>=mQv>&B`Q@ zxD=#Rt(D1`T!%Pn0PGaOKa(2GTZFJ|*>xYaHqKYY6{hab*4=2S!RjjSG6?R#44TRP za!{iCXb$ffKA30x3X)I=lGxWIGL|1M`m$Yd$}+P*B4dM5PyP1PNkSR_;wva%l

{ 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 C?eTU1 literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.xml b/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.xml new file mode 100644 index 000000000..d497cca9c --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/net40/Nito.AsyncEx.xml @@ -0,0 +1,3930 @@ + + + + Nito.AsyncEx + + + +

+ An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.Concurrent.dll b/packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.Concurrent.dll new file mode 100644 index 0000000000000000000000000000000000000000..8f91a729a66b1a841138bce7b2061468afd4b8ca GIT binary patch literal 27648 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 + + + Nito.AsyncEx.Concurrent + + + + + An async-compatible producer/consumer collection. + + The type of elements contained in the collection. + + + + The underlying collection. + + + + + The maximum number of elements allowed in the collection. + + + + + The mutual-exclusion lock protecting the collection. + + + + + A condition variable that is signalled when the collection is not full. + + + + + A condition variable that is signalled when the collection is completed or not empty. + + + + + A cancellation token source that is canceled when the collection is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection and with a maximum element count. + + The collection to wrap. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection. + + The collection to wrap. + + + + Creates a new async-compatible producer/consumer collection with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection. + + + + + Whether the collection is empty. + + + + + Whether the collection is full. + + + + + Asynchronously marks the producer/consumer collection as complete for adding. + + + + + Synchronously marks the producer/consumer collection as complete for adding. + + + + + Attempts to add an item. + + The item to add. + A cancellation token that can be used to abort the add operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related add operations. May be null if this is the only add operation. + + + + Attempts to add an item. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer collection. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to take an item. + + A cancellation token that can be used to abort the take operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related take operations. May be null if this is the only take operation. + + + + Attempts to take an item. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + + + + The result of a TryTake, TakeFromAny, or TryTakeFromAny operation. + + + + + The collection from which the item was taken, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + + + + A progress implementation that sends progress reports to a producer/consumer collection. + + The type of progress value. + + + + The producer/consumer collection that receives progress reports. + + + + + Initializes a new instance of the class. + + The producer/consumer collection that receives progress reports. + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.Enlightenment.dll b/packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.Enlightenment.dll new file mode 100644 index 0000000000000000000000000000000000000000..e21d38061634f706ea0c7ee7b647fec343d0ba07 GIT binary patch literal 8192 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 aF`V;{+W#a12rU0!Oe=5KAGHr%1pWnI)oern literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.Enlightenment.xml b/packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.Enlightenment.xml new file mode 100644 index 000000000..db9ce6e4a --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.Enlightenment.xml @@ -0,0 +1,18 @@ + + + + Nito.AsyncEx.Enlightenment + + + + + Verifies platform enlightenment. + + + + + Returns a value indicating whether the correct platform enlightenment provider has been loaded. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/net45/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..e414e7a28bd04110804695baaa20590f95d80849 GIT binary patch literal 96256 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 + + + Nito.AsyncEx + + + + + An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.Concurrent.dll b/packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.Concurrent.dll new file mode 100644 index 0000000000000000000000000000000000000000..8f91a729a66b1a841138bce7b2061468afd4b8ca GIT binary patch literal 27648 zcmeHweSB2ang4U|o%cyXGI`-02Lv2Qh~Y&=2uL6xkyl9s(P)??1B^~)$jn5*VKfSA z-D0<0X|1hRsOZ+#wzj3VuC!vMyY;QL`?KA4S5v8OYqxgW?YiBzzg_%&pXZ!A_a+2& z`^WG1`~3Ddc%Qd(&U2pgoaemWnYiw%50gbi9z5^7L-ciE{wx#t?qCqf73cg_1sw~% zIQ8qs+83vG>`dmOyRw-b*?3>HC!S7c^3m=@G&_)vCezW@4eimsOmCvGygW2rtKPVh zXsuzrhmOw{0IV#MbJQ5i&sZYG*EBI#Y(XvuWR768B6RiH7S*pml8Jr000 zX{)vyoP450+ZwaEY!5iG?Jx)*o?bkz&oXpZV>Xe>AS2sKC-AVY>+rZf%ZQe{SVi8V z5Zh*wmr_fJV#sBjk@5Wrs+&x@U1v38Q;9;>j5)rUxoMy(4NqNDWfrP;Wvc;l=R$a+ z$I2iWLg!az`#6D9b2B)>w2Cu5|Qebpbm1<7rLL`OE0vnyV2%y0n znx@%>V9f%zEQ88JLm^*-&zBho@)amE5Z@+x{=E4Vf=aRRa$t;Wv2hXdMaU{H7VIfD z3-%V#)oeS=2o*08y0*9s*jHdq*$(^Ib{240XxlyX3Fya|s~UF~Mujn>P8+%cS&oWi ztVeLH6%yFa9VRUd*Q34MX}-)#maPIXW0wNX`MJCCo|>|uMXD3545BkMhb1xXg*Gl# zHZaF@)LZ`equokz7NgbY+9b!CQuFL*x6&uSUbo%4#rpq z=edIOl(@~zNx!ijK5fSqNZAfdjKH4aR>3OPt`fSocr~!Ez?`xJeZqFIK*icsYzOO~ z6V6r`7+am7Z*;1@2CTzf%N+Zo1$Owg9bFKz9oqyeKg5NuEp`L@3e2hc;X|&U1Jk&gon)h#6)v!N@9ZXR)1U2Qw;u*$)9-|4xXx{-j_}@jAh=>w$_Xp=*nn zJ75QM$`1ID?O;JH0|2!cb0*yd9E4t1M270iR8(0i7@ZL~Ct${Qq41oaxFfSt2^#`8 z^&_op=n@sB5hIi3ytWvj%3+>COG2hUmy^8Jt}xZbB~;14py4r`+T+CMt+!Gzs^gRU zBc%O-bwm6yAXxd~2BB+ET`I}!TA><25h2Wc3Mdx08E-|R7l z#Hz2ovc#1xo8Svy9`v`zaU=RPV5j@<-Qyjkel;vlfEz?`xP{mM46Aa*Oj>|0?4 zE1n@nAW;9M6sVc~oWTx|18(LvX4sBe*i#NWY9e&H7R*GSczck$$F`N@sY2U&JLGKZ z9fCc@4+xIk2~_+up=*mD1ojn}Q#K=J*k%^Q5JREai+EgxAdSI|_09-lk;B0~^aL#+8|;3=k|AruA*s(QepGPmV?f1wgsv@q9N1T2PT7DmYy%5op8$|%RzVnxuy(tX zSW;rDnQ_&NM5*_aD9=8)Pq3=@exYlNp91z3m{axEKnLn&fvPu+cwxmeG7mt8_TOfe z+HYHdIB=|}V`h=sk6>GI7^T1#7^}r)=IkkE>Zyl*7U@_sB#q^V>}Jk2{GG@eF=h^(-tf!eA!MD!fD7? zSiZ_EFjo7QV=RHcCpKC1dtmeo=DPWiV$ZO_EHrV>Spb=@0+dIry4d3&syz`;>}w#( zB4+ICz;iA!>t=*xD`N(VPe5YI1}0*fu_dp^3Yy8moYOi_DX=Rm|Q{{~v=Zw|E#j$Td zI9tuBx6y@9^3dmxpH4ncF3F$>KQJDZ;3Q(#eei*M{=Ok!}B6f60jU9O$)jd;cR=nl8@*$OjQ zJi$nIU=hoVog>aSSRW^poBJ5KoX@48N1Sgdc^SI!TM!f4aqU9Po3=6a5Sj%xRBgtd z0aced30Uoq_+#H@!WZ$y{u;!b7IQ56mere8zT)37R#y4USd^^_h*g|W?KAf=K3#i0 zd@V5{X8B^@fi&XNa`8y!Qiv8^k1e|PkP{;Qn((U+h_y?Qr=i9yFwQ&+Fo)AzZk-94 zSy;@;t2x36-qp{Ne1qM@X&gMRkc}Qmoy+S8S71?$k`t(7r$WehhCWpZR4v0 z9AwgdX?Im1_8bz2YKDvbvF9P>G1!8w4nm6l9uNEGr+A=FJ}h60=L?Yi(Iw|Z%++Ke zLj;c(bQC@W;{6y^LN*r9c+fhIFF|!y>;+Zn#3m2H$Amc(<9-8#h~tfB;WAKWVU0l4 z8>-2?2w0c-E+B{9_kelqzXUv|S;jsWM&Nv(k!);v>`z5U5A~S^mSW&DI$b;69{5}Y zO8$o+C2#PI4P)EBk1JK1V0NX4eI^x%<|YybnN|uZB>~bz4B0g)0Sa1CDrB_Foa9vWNDZ57R;GU%GI9I2YI(9ycB z2k)k_x_{XY*F0s>J%|RZXlQFUlF(LXis^#Dncm-fieUwqVqRe+n|7XJ&gH>;0V**I zoPa5Yk!yiV>KqParg7uK^ZM z0nGLx-gysqIrLzEf*9Z&hyfoQzo>4uS*wZ^5?rwGQ^3p~fUsZftxaU{%ci>cI_DTG z*~i-D>i-(M4NjOnA@>H*jq?d35ah-uK4Csqr~@{5WC}Bj8XBOM3Otc1CfAQJ$V`ZYb5H`Q|zho z7k>efHpp+rX0k!&h(VlC?Kk%^cEz_?D&=Sh%lR|> z>fPu~vv3_sHqp+#y$y~)Zk zq8O_YHB(iNl_1Eoqqs%-rz#lxC*)Eqfg|?EehDc8um$S~!i4U}(+H0}kH#z6iu zWUu21f{wb@&VPjLEj+F)75H5$1`xi!X?&grga#25&Hw!F9yfHdmi{_~PG8ci8-wIOlvVb~} zdjhh0a^&F zvrq)g+z6nW&8_8D^9t%}HJ8F>;a?fa$(}b0F>ZCvEU*-t1xBt`a}g+!R^ybw-ZIwf9!XV&MvK^e{pZA%{L>#iv2q$W7?U@_(PUi_&tci9{|k4 z9|elwe}a@P((K0Ee}EqRPk`BV79Ys?tnet}Xp;ErG!o#i`MGyMlm*NJHfy0GD-7fe zCRvpkD2PTAf|$ip4**UFO|D}Fi)0_JZ&1yG7ZTTr!l%mY$@xK)2LnYmHE0%CE(MFK z1=wtcf~S2!pj-$bHVYjQgM;hqGG*Ya`M^=m1RwiwE6CFmANRN|W|gNn1|oA`C1Av3 z#xT0;U;QTWG{FhjyzOIrx^|u&z+4WRs-%FD-xL8eW6s!_H?ikV`>Mg_YFIYNDKX5O ze05>&<2FiYhlkqKbivKx=|Y-?!5w-<$=N?F7e9#{I|0ldVzpRX<#TPx9kJe$+jB=2 zO?d^+dh{XG$cN{YrFi(Ve!EM~iM;RL4cSe2TyqDz$F=Xa2>TnFEHP1sB*X;H+hakQ zg>eGM1IFe^FMJoRI?J}3%VH!=V6<-{Ade)>^7TVWv%pe}Bu1`nHy0VP?H+zBR2n~` zT(n~RJO?Ax_;JMc>BXKiKJ?Mj_+eXgd%H1iCV@2zlK~4;0AyywV8JpL8jJ$Wo?^)q z#%sHmJ`dkb5#LNj8hmqJZW@R(Jw{jq#)v3##>lylju;~>8a_s*L*g1EGgO&9xtSn% zjIf0mBP>^AL>Yb_i%OcRQ|x1Wy0+OKBU}!e&KIQQH{m6a8YAqm)4sWYxp^!b~P5;k} z3>jygb;KoS*<{EabSAcHMXOrn2InHqqb0&`WbnX@HbR3ad3E8=qUeVSH`~vvSD)7rwnQqRE5BkU0 zGWOHqAoSppVLl%kx%L)3*yB(V5B4_HgC~Lq#!?qB`a|BQ2Y^F(qIh_2$;w(Uz zkO*$Z=VyGifsc>=;M*AX(FQ-mcLZMKTN19OU13h0=f5rJqn`=P2>gJ+2mSSsmkGVy z$9cZv+ZhPa6aFR8^SHM@7^2AmrZ<+=qba{MzE&QgPX-oOL@4ZCTv10adsYX0RFv8u z_tgjM=*xjS!*z6Hh%H$O4R!Rl21_;sR|g{WmWN9P&5hv*tqd~#Vvue4xM;Z5=&)eF zcVjq26JURcUiC6u1KLMl5^Z~sT1O8X8^eD|pMr}b^kHLhg^#v{*xFObSx1*6&y$ks zqo+duin7y8);!J2^oLBYu}R=fQhUK*$=|{o6?6h^^wDXN-xK8gS3+}yB4u351fib` zUsN`M-hfYh^d@pnp+(*_cNeu;3^~#agyfH5*-GJVVJ^&EfTl@Wv#GdwG>Ei$!LJ2Y zV%NNYOmJU7h%(ngUT|{}Lo4yd=u)!4J%P}=A2Hk}+{?mM(i-7vQ2YIeuXVzGRMMjO zjs=(dxo|UadS&iBxs|RL4jUS1yqfw%%Vyy^DJ^MT zQtn#n7Y^$Rv?M4;Q|am8t$_bt{%3%zEA9de2k!y=U!k(LSj&Do$8*0CAkVqX-Hx;`8X?-M zxv8EfjWWuV(!Lj}pkgU4WsISNn%iv+VU(WI+;q>+@pYNsm(qS5sv+NWRl{^o57wO; z&D~{{n{^Z~aj%8OQd)D3-YMo-x~;^$85&22gxgPp)<*w0dP{SL_bGD%9mRDJw_(tF z&YVbZYtBO2B$|ku8I|_i&}52f&howkZlUJ(TYhUY-KII8H)2hphf8VA#yRwrQraS{ zttW*0$hZr`f$%x>hHxLFA*&4B#keOR`WOvV%nDDV)tVc!mWOB1=2F@<;q$0hbEi;l z7CoW4Jt)^e-!G*t51&szDWzQ#o=d;c+;dhwJfD`}gwFL{Tk+@N3uukzp0gefUqn}y z(w+)0q@9|35#=tXuWBxia*OHvrL>2`OK7N+_EdN&{ZcrN)^CR{p+5?D$|$esp=A`r zv6O4SE@XIGsH(&TJQ!56`OT&LBSHDbkkP;)iGMc_WCb50KSfIFtrpz}q~CVEEad^r4b zPdoicxKjq7)7$Cyv)N~-j1PLx0~f&2oH3Tj@V!!>QW7mC7zqmT}ru z^tR^MFISQ0LMQENdQ)?pb~XJ@IBtVMog=u@lC~c=Va8t83u;x+#V8r`>5!E<2jsLlrn_9Kjjl2+om5aC$g`Gs6*lS1W|)Sv)>GPvc1<=MlX3K7upt5xl!T zg0=n#?hTIM9Kq#ztX2VfA!B+fV2I`dR^r>Z3|j=Y3A`MzmS+~o;{uZc`vu+tIDx(- z@ClIw4VH`tgl2(r0i)C+^JY81)@(dNi-VhtQ^wN37UK^> zAEEtaT}A`(PI4_x^`wj=v<34^hv@GR{T-seQ#5x#^Ib-VXzmovouaux_LQe6iR;}{ z^cnAGp_BKO4bb_d(JR_|MO&|E>y`HQik@GAgy>oQePHrFN?NUBtQ9yD zkauuT6Yty@UL!Cga5o_D%oyG$@KJ$Jdkzxst_~9KoDRx~`XKS{>!6&g-xE1#P2YsMyve#oA3pIJmjP)1=3ortfd!MC?JZm6%scaEO%9_x2Nd6vU`B~z% zxmixy&62ZKayH9J`v{$|zUX}#Iv@A;L+3ZVdqronoW1u#n}K`M7;0%1ovqN>1DbVm zJpa~PW3WAw#GdI=wga`qe4SFubg`#X%63ZGPE}S)Es#>pQmPlFcKMnme@g63iG?Y# zBrm=22jkb)cYJv{ljo(6^6Hds@{E)x-gE7fvInI0eWGEXXgDA?91t50X#4s6)GC&& z6-zqAl0(pNz~3R3+$Z!=(RNfc92E^mMMI~-=kQ*G&)b~_pO$+KJ}0MSo=h2hKF=E* z^SvU;OU_@&y!Q*l+YolJUkF?f$Qyhz&l`Ly&KrCu(y8bV)H9v z^BZFGNz`~@=p<^~V7?(XA2;}B;kdy&zqh2++fvutV(r^f%iAb*!2hht`#^z^&OYD_7tS zYS0mw5|xP31D7 zw+S2+cv#>Gq&`%6Lg?27l26JCToz!fwh25e@PxoO0+#WcuqViHS@22Z85DRxBu53F z5DA4ib(z3z0tW@25crxv!hJNX6}U{`puiIXsf<&pT=Xbd!StZO&(iDkD_Ut}jc1Hs z8?((`^KSET^T+0RYpQjFb+7f3^(#-G_hoOJ?+)J!z90I2;ycg(kpDmZGlF*oZwi^% zGy3@KAUi%k&KjSncp1CdF+qlp2Y&>3ei_qKgQoyL8~z#KZ_1dSR{mC)f0<@sm+u2M z@gp`r^sN9iF|!5%`DWU{y9ZIg<@6|B0Qd#E2=FoNKFjIL z7%}B^jFw;*`#4Hf;8&D$Q2$?n9)neP4tBNQ1YJodK-bWBLD$erplj)GLD$mDpvTis zL64_5Ku@5bfu2Bbf}V$#UX2}cfxe2ZceRl)28}z6?;8JUj5U{-t>&Qlu=%F>YjcXV zz*=qHX+3Iv#d_WPSL=_~Yo1zf%)7|z^;P;N`8s{wzN9biPx<%wf8_tU|DXMhfenFA z2fh$^GGGN)2X_W{2X6|V3=Rb=Lz6Z ztvJn$lzj~)M`~M)bHvDeccRZn${rgZ z4Bhq zXgo>dDH=yLo~H41jb~~c(|ESV4H`FU+@$e5jTdOVQsYZCZqs;;#_KfRpz-Azw`+Wb z##=Prs`1qtU!!rC#&L~%H15+lqjA5+IgJN2F3`g`hvWS)aFTw26=OcusY3>6V2}AK zU5)4Sre&Nq#~bZdD|K3vjXrA?@Ob0H)>`28c;*}5v^pg1Z>-J2|C7}Td@Y_!jZUi# z&l)`I@NB?y1)i;V28_+#{l+Kpe8>Bcae;5Z*yDT1coffZ-}j8L|9i$nJRkA@!Z_(4 zYu+Bn(!GKG#t#Ga=DmSdyhq$`bOgtmZwIsF4}H&Q4b_|ePzU7SGd_b8GCs{6*}Wa{ z>l3T8nZB0v-j>|nbkEZ6uC69YY3c3l$ebzW0xD;3SJ(Wx)V%a!l;{EhZD*F@1kSNg z=NPR%N$bhDZPh@!2dHgjdY~_njd!OK;97Ra zlX<4Ot(lybuE?afCwB~F;hA{u`cfX`M@r8?Hk(N2FCRz@um;Y-int?JWKyX_Pd=GR zL(;Y}o9P|sNn}wb$5jqXmHb?GT_V3T)4O~ind(hsxtO*upAim9c4QN|98zq3E>ZK+ zi@LgYXXCqIS^MywkxIqcrcy7@LqDRI=P8$fgHuc4 zHE({&izV57$W~i^Iw3IdvX~UzL z1ro%iJow&2^QDQravSP$I&3MravoBb;#mjhrV>kWpU}QHmrwLHI_}LiUYbZJvdJFW zjy@-sdZtU&(`ZJbhtFsytYepH%n%dz4>Agg+3ezjnx%l?PhO}*Auc&X!Ieb@-Holjj zGPApFySx84CHe;va8;?CD>j_8<~BHU>GfS*%i}%Q!~3g}i4?4Lyn9BPyAFx5_RK)G zCm|z4+lJ`VLTMp)fjwfLM$y*Zvua-@{vpXt$~fZCkF$^&w=p=t-krh#-m*$1uC zY3=!VKCv#|vlEjZ!N0@!oI8;_ZhZ#1Hpf!~iH^OykY9zFtMW!=M}k(MPxA?CO>__J z*pbLChwEi35&h`txm{hNU4ko_N@OKIQKYvekMHqx54Z}W)+=&6S@b4GCdx=Uqd=)P zCwogSm+0$G?d?eBG4@I&&hUYggig=KG3B^D;-qfq&ShlmmsEAcvvAQW{5_Av?o9T2 zC#&s))ydx8MB0(B+>=kFbLePCWLw#m-k!HliYLoG_OKP`EuZfPPjd3`kC7X@! zb!2w6tS62|zT`F?jv~(|yOXJ8-j!3a)Skmzn zsew;hcA}$GDOi_JZr>}EJG--FHufSHkE~S#AiD5ZV1!@^Pdb#di6nE%P?<&AcP9Ik zRlHGg+|YZ*)Pun`zpJaqHM7Z#M0qLLB5Sklf=!9-dbOrDXL^%*Tr3;qVllZOQJyMj)NX!n0xfrg(Zs!YR>~Mjt18OFEqt zS##38SEPBNcf^>#9LCn{NYM3mL)RwL{i=J<*l@sK`L3>Rwfh)tGEHQ87M3j#NZ01X zR_^$wwCpz8*)WGUcPzzfoOd=gqm^^zACbAS2a^&t_6RyNbZupJoU8dDk!??8Z%Fne za(YTe++(`{wt4A-uCDyfWX>*F8bFQgnjGZ?+7VgGX6rA_VmXOR7uzy?|L024R=fN} zP7LMrAad={Rwq)3tDMAP`#=v`k)vVbuN^y0tnTT|K#n$aUxy7R)-sM{yHT#HN?idr zHf~BFm}Lv&^tALWtx9Hd`3>3D#P;|=Do-8ADH!XtCRbroS)ws5Xfe80QwT>*txVsL zgn1n3qgkZ)W^T(kNc1*ov=VlBa2wtw+gTKIXTD1*w{myZ=B4v6k*K}fXhu2H+VI|S z$wgfTI}qyXi|<(>6c*SlUM=z7+}6qm1=-`X8#X0)(x7#j8xrdi_)}0aH*ZcRb`Prs z3bAL{L)dEa%A==Vdv~kPmTF>7?{#lWC8}2T?aJ>ZXS28=i|I-Usj3g}M)%-uDMJJJ zo+G{oytM=0Q%g`3-+|g z(}VORxU?8}ss-N|?M3$OFd``#dU30#s^!Xdp^^-848R*);rZf~G^$`9DHBFh9uKxfd_TMmhkar(`cXpF`1Z*nh=2?k?qEyz^{*9hcDf z)BBoxnWO&(aq@fhH=FX8XYZ5$y~c1Ts(y(h2suWao`Io6KPr1>@05>Sw)(i|>W5#t z%kuzPQ8GMH!w7f*s%n|6U|=#IS>j{q;71un29F@K>936pe%q)fPn0iUqcn*HcR~=1 zl1}nQDKhvp%fAmfE2<{uP6=lk6%{BK@YO~FoB-SgZ2AJ0FS1UmT?guNJXeIGrlFDp zA-`E$6-CCXgijG%k~QESyDDM%suKPt!!RnRP#|Qe9I!DG$G5a2Nv4t!RxuqVYOD4_ zEtiEV7Fa%hs`^pqK*&kO^*1xs6h=O~h-l|R0d8;~h%&zwDMpgonkZHEw5a8Dc25#jN*V4nPDMnSm8?QIv`cqLHAzLy$f8^>nQN<9AR2}6BR406*gz(# z`YV+2C6?X1OluKSnGpv|%t^P3LY9jj?n*RWVyquggP7FTY&525YXYF4gau`=9f7ZU zs1!6h`Z$9p1Q4z?0NJf71yMIeHL-)`I;un|3&bKO#0$NpEaO0-UKW(xt#h-Ci@^`N z*iI0(^Q0IHL^BiOazT}7B1dXGGWY|$c#Fi*pdSNO!e(W$2&PcYaDhtWmMIFgX?ij@ zRh+`@t#YK3RZgjGawKlob|-2Zr*oBRWS?^JF(ibT#TjiYRI1hpP0UB)(2Dp4!^2vJ zCKG7vBp}R4ldEa6-xt6ztr~m;GXl`(6?zCLGWaE)zm&|cF-Jw!;6o^nS&xZGQe}Ds zB9^co%wviOHJSLm%@nGfVvGqP_;f8CPKYT?pI@5g4+fNdXR)Gc@EcWwPar4ep`u%f znxi5~D2l`-Mv)IwG@*pY2N1?@83(_iCbP+YZ$Qw@<``Hs+&*&}{9p2iJtD*uB~_m3KpmL!-Cd|$$O)+XN+9l!PQ_}p zO-mVH=ns^ljFVLvSHz(`Dk?CdG_C6HMeb5}NS3p72d9njHjDK7;dq;cC2!k|c$*o= z+swJV%`C4{E^o6)dz(qy+agwuRfS}#(d0vVWT?jNM6r=E&a%K`mvr4+^@GqNHShB# z(%!+yl*?NmzuKe00M)55KuMG*Wu4$k`3u{VDvi?ASX#$;xyDM?k5vkZ%t>%4k`pE% zV(d^Kkys~5XOwYD@QUqHSJkgdoFR6W$Pr0uNgN@xVq^wlP|V@yiD8@Wjq&ma`6Q2l zLjb-tjGZk$_?SRe6^-8yrLW9dA@y)#yVOy&cYF-+MtT|d}7zmL^`@6 zm4G7ru-u>;_l;R}t*U|uzu=!yy7G^H>yhZZrnz(H09+Iusl>}IBm9{RFaI1HKVs=O zC^by0bJJs2AZ=(|zp^8`pz(r+=$2%<7jJ@~I+IOA7dAFIqK!N8aw*!fYga1Sqh4Ad zeQrZEp6-oa8Slf(ur$#%1~ss@jkpowcRvmK8h;6XA$~yvZjH9%UD6Vb=g!5S3FxS( zDZP`?Zz|T~6-|xUWUGm`4|L-qaH&BTyW6Ag_no`LZFB42<)tr8GiWkiR7K@oN$I_C zY!?2aJKizId(k)ef&JX~szJT)lrHACyL0i2nLni%eoQmppvL#AZN!Uiy2PMG?^R~B zx5V-y8m6}3`||Hq9#^D@6np~!p?$`yZ2ocmy!Xa?GU~TH=u(50{};>{?Mo#5MG$;lk(Rx0 zJ@Cb_@9J=n@;6avp+WQIPB*$FT5!D&ug?`s$g?oc8|@f#*^D!4i7xW;}7CP3^7ii&ua7>Id(rUh}brA6)Xm4{vVf32eop z&MkO9+bOZLa!;pv3*R}cde=M_!)&ua&0GsHS#4}tICoZOru({1yj@LTGCo_u#$CPL zV&DIb;O#-js)}1cM;(3`#c8DvUixKQQ>k@v%*1`U9?akgd4I_n-kAX%{AV`)n|usu zEdEl=;P3{kzgmJnF>;2S^R32n%q4H zu2TQk4f=-X*QfaxWzIK4SqY{grH1e5^j<;>fLihJ?^gM$a+SWVZ^QNFc3cwkXS$T? zKq_Bq=5VXa?m{M;DT0reZ zD|(=rFTwfs2$zo1MroCL@51j}V)%ws3#7C7wx5>rEr_;p7jmYdWj!$4%O7re0(P>! zTzZAPmtc=#Uxklp^r5`%lUC%)!3OpfU)MXnTn{=An;KEKZRtw9Jz|Y)Z4a!?;-7jU z6U8sYM)yb~tXqi|MDgpKMtsAXUk7YKUcQvh&~9ll+syvs>*-bLSSAtM9i-J2q(j>|a~ZyQZ6H#eH)?s8mk9LP zVrqEwpxJ00E)_=T8rf4$KVdPKKIK^D5!Q#X#&6f6m`#TFu2V+!E!Xw` + + + Nito.AsyncEx.Concurrent + + + + + An async-compatible producer/consumer collection. + + The type of elements contained in the collection. + + + + The underlying collection. + + + + + The maximum number of elements allowed in the collection. + + + + + The mutual-exclusion lock protecting the collection. + + + + + A condition variable that is signalled when the collection is not full. + + + + + A condition variable that is signalled when the collection is completed or not empty. + + + + + A cancellation token source that is canceled when the collection is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection and with a maximum element count. + + The collection to wrap. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection. + + The collection to wrap. + + + + Creates a new async-compatible producer/consumer collection with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection. + + + + + Whether the collection is empty. + + + + + Whether the collection is full. + + + + + Asynchronously marks the producer/consumer collection as complete for adding. + + + + + Synchronously marks the producer/consumer collection as complete for adding. + + + + + Attempts to add an item. + + The item to add. + A cancellation token that can be used to abort the add operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related add operations. May be null if this is the only add operation. + + + + Attempts to add an item. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer collection. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to take an item. + + A cancellation token that can be used to abort the take operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related take operations. May be null if this is the only take operation. + + + + Attempts to take an item. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + + + + The result of a TryTake, TakeFromAny, or TryTakeFromAny operation. + + + + + The collection from which the item was taken, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + + + + A progress implementation that sends progress reports to a producer/consumer collection. + + The type of progress value. + + + + The producer/consumer collection that receives progress reports. + + + + + Initializes a new instance of the class. + + The producer/consumer collection that receives progress reports. + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.Enlightenment.dll b/packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.Enlightenment.dll new file mode 100644 index 0000000000000000000000000000000000000000..e8718dd14cf8277c9f2fb25545205b1a716f222d GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.Enlightenment.xml b/packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.Enlightenment.xml new file mode 100644 index 000000000..db9ce6e4a --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.Enlightenment.xml @@ -0,0 +1,18 @@ + + + + Nito.AsyncEx.Enlightenment + + + + + Verifies platform enlightenment. + + + + + Returns a value indicating whether the correct platform enlightenment provider has been loaded. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/netcore451/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..e414e7a28bd04110804695baaa20590f95d80849 GIT binary patch literal 96256 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 + + + Nito.AsyncEx + + + + + An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451+sl5+wp8+wpa81/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451+sl5+wp8+wpa81/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..55e19452a3f39de0004259055f19391ba7d13007 GIT binary patch literal 95744 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

{ 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 C?eTU1 literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451+sl5+wp8+wpa81/Nito.AsyncEx.xml b/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451+sl5+wp8+wpa81/Nito.AsyncEx.xml new file mode 100644 index 000000000..d497cca9c --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451+sl5+wp8+wpa81/Nito.AsyncEx.xml @@ -0,0 +1,3930 @@ + + + + Nito.AsyncEx + + + +

+ An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.Concurrent.dll b/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.Concurrent.dll new file mode 100644 index 0000000000000000000000000000000000000000..aca25f828a5b3836321cf58c09e3502d8e59af08 GIT binary patch literal 27648 zcmeHwdwf*Ywf{Qj%$#{8AsI+Oo`VVwB*gGg5hD@^VB{$YAQ}ymWPmA?8JL+UI2nzK zwzkyUR_w#-74D@Ed;6|^SZ%efz13FxtJS{l)fB3?*4Dm$x9x4cxA^<6wfA`>fVTbP z_xjwyv)5ygd^8^~RM%YYmI8 z-E_wlPHo5N%tXv+A?gJuthiU+1em~c7!Ogc;HI*h8En6Njv)n~KNc;!l|}hK4{DNG z_=KT%10#ote&{M;hWk zYd0p(WoouL!BW`y<^&&qsafXA#FT~;#@tOl+AOmHV4_{zz6$|iW?h`j3ZgU`r{sKq z$^yabD+>YbGE=d*flSCY#%YKd$@7q~o+&K`Ed@k3)v4y>&qr3&EVI%13y?IKBWG%I zF-Wt_Ez6_w=t$IVvhDmNpwB^>f%rDj^XDw2C{&7#mjhy4i;YVl7bmN7k-$KuRba4! zu4da|MznH?;PsVdfOeTFWjpL++nJF>SZLb=bT{;4xYSL0J4S^ut3eyO0wPC+Gch1A z*$xhD=MIw=#v0LH?le2Ul6k9;n90>h=e^`_d|*P=$P(2FRvytAoyVM{_Cg1jsv0>X z)MSU0A3TrDh8%_2FNheE7SOsIm0wJnO?|g39Ol!VcTz9`G44|+MD#0vT?XasuQdV# zm9+ws>i{b21+TAQ&VZkoQhtK3*-y+!!uQd+TTCmE+yt!2oH%!!nd}7Gz`>a8Vwue> z<5F9gl73@5Y;DI@aM=z_jDUg4Hi0VEt`xk!auuLmW=h$CK4CkUpk*ohVsJ#Q#H5` zoVi!dI8p2eGRv%_8CaDa%ywjUGNIy^{Semm?*g0a&j<`u-Xt)&8=#UEyuO0D19mW_ z?0^s14rV0tNT3#D&ZM^kMxfUhkZFV%%<=Sdy!W) za*2x4xREcgtiwjAa+v4QlBgLf7DaZvFHCiD2~{#MXm|`~_j&Po^UV}V==kLRh-!ae z-4K5a3RHf$R`B}Db%1u6Ddh+BA^U+Dt{=F6r$Aqf{a_{cArGT*KR}ad&mCt-tlDm` zT#pQwC^LbwPK;D(n})#WKB@>z-T+X!QSkc8FrZy#O4)>dWt*6hycx;dn_&ejo+U;g zP=D(NYW@}$a029jpSYC?wxb^QRKt!5aXL{CVu~%^9_H?GY~^^W(YD?OKHK_cfq}|f z1SW3>sJvD1`pVk??J`r!X2cBJ%#0*rC^~lukEH7Z; z<+=WM2nYV@`sFxY4-W=kE70=4w2OipgtL3)eu>x`6 zS<%46615+}w&E~Kfh;pri_7e})6L`&W&{3%h7-9I=t&x$q2Xi=F@_}n!&?4+4Kb93 z|4*8prsd4SA(@=H@4~8Ltco4Cd8h{D2KHdL#Anhg86TPn8$fOx6TI7EMJ7w z*)YaNc4~zZPaPt_T@V{tkFXkVmf0mu2uy~0BPskxHJ_p4&z=xN?1eeVxE-q9b>ZZ< zK#WWn%?>4>1efQ%Hf(ngQuHr)*f&4HgZV^0%wLP=xM_Edhe(3G*h#{RS`*#~aP^Wx&kx8c9)abVB~yNE`T+ z*2rP^9Z)>>p9Y-QDr27uBXGXUKsL8L_Roa;$bea9E(Sh>6ZK~~1D}gP$+H3!zbP;= zhOPS$SE@F`?8*T9Oezq~b%Esfkgr_nu|vu4gFBbcINbU>?{>%Tdho5}4>*^{u0ey$8{NRSj+JMHbrXO)))Sc+>kEPcf_jQ_OP=WaG|L4BFQC{CTLvEOQ2?7zVy6 zhD)7dig_Mvo?^Bw9!77NWibYgKqqWRn*R%C7qJJk%LtcJ24Qx=;BI{WsOaPjo?RIF zW*4z&?Cc`-yR*r>T4hmw4~j0iM&=uq5E{q+*vNb}EpRhb!V4bYY)@IAAHnfeq&`X_#x)t77Fe*k<_!r1^bFVj;E1HX#y{&2{BPmY68w6P7bx-|#@7^{*LWX!DInUU>z;99;WV?%wt1#5jF}C}j%eff208jg zZBuNL10e7nC{SVZY~E`96o~9wCY$0H=pFzI?Q+&(FV1%%{c$eFs5s9c%OB_Acv!8XyqtamnR*o!d+I`!pM#|h z3Yp0y8#F@<;*9YjbBLiY&c&jTT17+7Dk}AligV`p<9xJ4(V;KR zjuj!ov!u91`ll|E`~{@cir}$B$ydOgi?wyF8e{ju>SlQCTX_6qY#jK{g7*TR2=Ih& z4gELpUcuuVds%3;lD|~Cc|G|i%1oB{z79;pAU3NdU}kv`>4f~RkTxXepu=SA{A-ZB zjQ$2tuO(a#A@^Gbat7y+gXN7QC9}+2#2bSX^@u~YZ{{LU@;?PAepOf<&I4gtMY(cW zMM3J#u+$?JU^DFb%wxMgbJmu-?s3=AYoTvcyAh*&KY+0}j4ZUf!z>R0Gs_jE`RkFW zW^-$~)x47WTFs@fY4~>ra?0mT1Hz(lq-d6zi%kOqU#qzYlt`;_T3~OS?lQpLI!HC5 zA6tjtLxBnuj~z<>0o=Lndit*Sxoy4?8CLQ?I2*IhOon$@X8Dgm%6~#)mS2@r82<@W zwn}rGi~j|D_|Hh@HduTr<1@oY5l2(SUnh_Oe=RJ&2Ba!%ma%DzR#;)UXfVpE%y3yW znqVX?<_3`9l+fZkUNB4c9_JdTZ{?9R)PyIXvsp zhfpIQEIo2Jp9F7*kI$JQJlBDD10LVp!S3S(n(19 zCKtUh6X|KT-&__W=?n%#lacaBS^)Wxj9F$bMiK+x_M3~0*?y0{A#%r$C>O05Ki`6D z)%fw)&MC&3Gw!&{9Y1V~Zf`Hf%@mMkc`DNKG$b-JVz5jHK8&>tgUpgCY_6QKKL+1T z7vCh12j84ioC%~#j}g{@F(Qh*F>)rjW5x)xMvsxR!10ZdvsIaW#aTdjjIf0mBg|K0 zL>WGt*(dCC0E+1JXmTN3oWu?ey>lK?IseWb@BbMwA{2$#dKn4v+0F9qxLIEgNC^ zrVZ#v|Cm8w(s|(R^zp%xF|!Z68}azY47+R8y7N`Y&XBm6k1VzBEC7bPE2PQA(jUCs zo@U+QQW!0Z7!1J>87&t=ek5m>nTyfFz_;#jk<+a^-ld{DWTXaBjUnT$vmV=ZmNRDF ze#jj&Y?0gE<(-!;HwX^FrwY%ti<(=S7q%>%4}1BAA1`R(B za_*)uKgid_=cJqniagE29kkFI8L9oxyE1EEc5N~8{2&BoQ1O^XEI0Q+rw^bl4@s^~{~BFhWz(4^Yi=_8sAHmj@Lfr&v611(vd$%(suhmr40vbl%`p7fkmDoow zA`{e~p`WSc6a-a5RISAOq)W*H^&o=nUPSd}LOm-~EpECvZvtw+7ZJB!sJkRDK^uj7 zNvPShNvLxmxsv8lmry*n+)E3oTc{6+s=dlfhotr^&EJR4rg7x zF_Nk-<#}%V#smVFZkx0=b|0eUCoc8vs71eVsUYU`S6#}$dJ~?BVsumZTQ$v~CTVJV zgsB#xZliy)MnLV;)Ezik1nF6!ZlQ|xYA{HP&SWjO(89pIMwkL;F?AdAK4C;@o2JeS zJY-Z+-p%`Aw1z5fUe*{#2Q@WpjbQ8@*VN*`OZYO)AKkp4L?@7awyI%qpbsn21Wmo$ zsx})a-S&#hN;3g{*0GtELjcxHX+V=;pN=Gw3sJ-V&^~ zj|%n9NtgOmo zhaS|_S5dBso_6!r#LlH3yLmfe^XWI5dd8~67ShE@Ro{ne-WxlQ)@bS(>l3jH=n6OQ z@z`S8rK#_u+=cX6P5l$fT|`g2d7p?~Oe1dIB)IEVUlya$$2G&x>rM?naM|(B(v%ph<^|Vi@ThP8Y zo9pQgp>7L55_vwbk=`xTP2q1xo&j~A&bz*2XbQ-WEEF3jil?3q7DI&f7`{vF~*9w$j}~ao+~%3VKlI{RT7UHhNf7yD{5r zqceDMr{j@>)k{FlRFv^CTuN*sKJ9YeSF0}pwOHr96kP-Apr&TTHiJ5(DYj)Bg>i0k zY}rPWG{t#W65)X6e3Y3(nE`ucy{)T(z%_MOWrM*5fQk9J+`<@EtIXe7d?ii@!GQ@Ek= z<-)%isfAUJb3M-M<0|(rlVSY^)=4KdbzL6EpX=b8v1>KO9!r;fJr2f#EAPku*0Rbr zrPITeW=FrrH+>d5GVF7M2Ev@~vre6=+&|%*Wzb)qs@`1g)35ZX8XpU?w$r6^>{I6+ z!g<4>_ec!*%btoKz_}@meNqHZ6i*CK6`pEP)${}&8_!qpWFUD2@5hhe%zFgyxQ}4v zKZ1LOBRExX`L!{F>W~J(V|*skD9uM&i&HA6ZIX6KdO6a1%oog0Nt%&#ucS92olKvS z^g-c74Cb7H6q+TSk2FDTGUv9*T$>U8(`4BO-2{F!T5=q7+fBxknA2`Dj$??f)2 zFPh|halg*xQ$`c;`*3dKUH20dvmXP_XNpC#%YA~{Yn}rCE8!7(A3YrY8Qo8J2bz(- zj2+$)`Xka-DcdSL;a1t5w#p8+9onWFtPNqPbf%cZ=pG*n1tzt)*$f{pLYv zezSQ<^c)gBhotNwT|4hU4-)SPnq>dkgi?=~_lW#GB7anBya%QJ06y1vRBAjbH6A41 zKQs~VL7Ry8o)5_RoF zkBR(~lKZ6apA~ISN-Lg}+-F7Gv!d-ek$g@hpA(tqMCL_l<0}%|hRORqP9u`mOFA1V z@8=AY_i>zFEooj-yaX_LpT_Aul73XuuOQ`p*g@hw)bjlC5(3K0;4epAAOLA5=XY+zXvw5AGM8t#TgU4{Zi+Q(I9>yXeFY zwz>~E>*T0@RmxV|6U3gWQnm}VEVH|%mZ@S-x0LOcvfWblY>{sg`F_aXW;cmsRxHel zZCSCQB)w2)&J2v$b><(f>k#LBPA^GMmE`1phRO3%iFoHVBpMD#?L(qxNc0>K8xDvK z2ekcsrdlMHw2CE%Q1AT(Fv-4VmPt9F2 zPj(r6TJJVE=GO|RTO?nWdGBS!+X%gEd^5ZTGJH<&Hu#L(ZScvxUCZ;?x!vIXTR%AE z@J#cARX2sRVr@yR?Z*7{3^efQD2dHo2Hy{K8N8Pp(xrY{H6?ODEIDAX&I4k}0jco- zG%T|Zh=zmGii2p^^^rr;mV3mKd(f75M2?DvL&7;KHXjuYN5$rYn$P+V;vVJuk&jC4 z4~Vr7i?v5l*ZI+-sB44yu=23McMJCzyxV(Be z@eRlmNT*N;bI(~c8)+k*i*%uk)Qjj2;4A3ENY~IaNIU6ANUx$7k@itj^$OZekJqlC zA{ljkqVoy*M>@Ce7?tTQ)yHr{@Qvyh=>4e6GVVm0Fv|4v>Y0L{C25Lej(F+%RrgpiG}Z%3j(o>9C}SC4CgRe;oIy;KwATAWJ4BT^20U zlGVJTnrU5Yz0dlN_3wdV@VQ{hzSn-y{+0b7_9dZ*LgT|N zk@rS!h?>|Z+Bh$SWS1Ah`QpWz=dpurjBxth$Z@1MR55;WNup^uu}}s4!Q(;&qIjuFzy@X zp~QQENAMe`dDwm413XH94?ISPfyd|{fLCFqZAAJ(;MMdI>@Tb7qZl96^l>^5=_ly| zq@Tu)vzi{Di;#YfF2>IF3n*1XUqq>K_+D5e(k}zArAL9+(pP~`pzi>mK;H#kPtO9c z$G!DD>}FpCeg^#%_+jZgbehP`b@$eA6N45K0aVS9PPsC zWGwGR$qpzH&c^2klw>&@K31QvN8crKqj`^`r$se8pkZFay&4uZ9MrH(zn8AO5impF<6C2_ zM28IEfC2M)x(d(7Ov^Z7o?&!a?bK~eGX|_xfM*!*u+{>u$FtD*vehMd->|j_{d21u z@ESa;jc%(0&l)`I@NB@d8P7I6*BRZxTa6=lz7xF9m|=g&SZCj7lo^XL?K=u>iTaDx4Ipz$zovw`BYV<@Vny*C)v>)>E z=+j1fbdI?{)P=mKjSq8pw{{iwccpfxR~7ODZMpqz#r?UyrM*2pEt1pL-`|x#nau^1 zWPeZ3!uiy?^g@*A0Rn9&m*EVSSga*ZRiEVbysp4)|2J*=18!Qyk zxzgo>=|R@O60C?jaz#FyP4|^D`5ZVM8w>gV!M=0>Wr|$os9cffvg^{NUHSgygPCl9 zy1>P>eWkomP_na-E*6pF=<~5!mtN4*b6p{|2bOi7-MVyfPY-?qp2`;Cid1jDP+F17 z^`*1f6x-zX@&fcDdU=6z2`D(#4X*_YT`#)4h2X8o5A4aNOKHgB3kYu3{PUb3^jH^A z>xRM7p21SvwW&;&ed^{dK;GzRW`+c@D}(Ppw60EuU%rsd^it>kVkte)?D@IaygHpr7czac1D#L4dKh=@pi^0ku0E;3v^L+jTkNE* zh#Q5SBII;U-cY8U=~BA+@WJPW5;6qZ!$ro=h%N%A~R`lLc3(2va<2&nvrG zX(!wwJ(})Up}RR(OzlW-$T`OLOHCa`kM8Ny?dT^c%wN~B!ygly(t8Kf@S0oB7cX93 zYX|(gbazkB@>Jh$^vJ4AIt%+fN1v3pO(gs^N%VE*2Mc{^88g~K#HD6RJGoDsv6SnF zYx21*sX~Th$Q>DspE^FM!yCpVCb(mlNA9V{v=cO&26Ls%04kAA?JT8A>2;~TU6>sS zP9H@V{h8cf>+_J>lFAOIyY}yayc3267x&rKtV~SP3WPx^P3`I4!JRwPh2`iQnSZ1% z1jqcI9;rzJF_TRfB$iR6zpaEX0rd|03d4fUMV?{$(_=Gb_?=Y1t<4i}D;CoOz1jU; znGy!9TjC^tcv*;wLJISg-#cFJhTdXcCJa|qSE>Mat->D$Nne*Q?Dj+*A6%O0?@#AE z{>pu&bgqaP@K}zO9l0I(!hp0)0YvxmdTQ^ApkX^EMe(%IBL!HQnK zQ-zvuODAWn$nV)-$n4zZ%UZFvQvy1Z%K5lXyYxcpY1){A6WR)e)P9fWRLgo&*crHP z)1fK+Ql>YP&6Iq(P8}S2uy~&@>sk&;TF-vUX0CUGQOzqD#$%>9CvbIr&DyIhC_%uJ zpG+^jY!Po@1X-Uc<(oxd<-X>Q9AYAu%90xTv~?HyGn<7GrOb}~g89Y0<+QmUQaqSe z4Fc)GUyTujIXwAL(LpjysUarwNawE1fU=4=F0oZ zc72fEp;vP1@TNJb$49bJJ`z){v;NbDJv=rLV#9Gg>;d?%cX61wj6R&7}@`1qnOkG%=? z45aq05Dd$0p+vI1ceL_ZLyigThD~XnTWDSW+VuJ~{=$?5@s>>bx>2?02!vj2B=!;Z zs=OTOiQ3s7>r<+l#&i4q`&tR8l>>W9`^np4ZYW@KQ%sz7>jv;Xbsz4g^7vkH4sQ-< zTNl3RmZk)$oDAR~o&;`;9U0CW#I11&++LC0iSJdWp{azl0B#97QqY&6>xGl&Zyyie z_m`;dlY%)^=Bdv@NfH12in$6lGbiS;8C-E5*Mte+Tw(wZH;Kz-#2BXxHzg}FeaO#% z%87x;+we!b`XRmpMr1^wAGd<4TCQvlD#=4)5Z>Sl&lRuaPzC!)nQ$uQ3GoLT!np&` z!v?aqxVDtk$|mjvm3KYJHFB@?i{>otmu9fcsq5fA*ntv7t=DO8Mrs=1Cfyu)oGR{?>9Z-hR5iPDyC|?S0L? z%+Y_XIQfnGn@#!9>HFk=uQ42os$WtFLXHuyXJ9CP199#3&s}8En!9%0)%uyQefZC0 zCCCUQ3?m#wQdiGt4JRhk@r!Nd4&TKfK70hiW~e?s{B>hI1rmI{o1m%8xE+j0f^=3e zLGj_QF#l=rSfeMijhY&i3)}VaFlPXE0Gf8#vg7Nd+I7G#$Fn(_Fb$O*j)u(o zx&#F4(zZglBx}G;cU{`D>(ZeX1K+iuPT{DbBw%Aah3|RCGmK^8tm15xsIS`(wOkge zm|@xc)a^x`gHbORUjSlaJYKi^n5>-(g}K24K&nDkyb{l7YZ6qq7cWNQm1%W*#i@IB z3qhFUshW*Qq7-X1p_lQXBBT~m%x7*@!c;oZ=)K&^y)ottuo~2nFa?TZnjkKYVMG)N zk}%^bEz1IXrScY_PUVb?I3tk+yaMfYZ1Ey6@WN1cZrxsS-eO&}K0XN;%w>jl7;_vy zF)nI3pWTx|l~RT~jdKxEW-Y4_3hmMzGM=QOR){Em1Xay+4;g zgT)-ygV{_W(H0ZG+nG+a(~WUagrKg4g9?#_N%T{5LXoht?=)7_4S%U__(4cwHmdlQ zsF^CBfueY-ZZF=%v0MsMHQN29fQ=-E-$@RCNzG5wLcy@IKvgHk>zao@6;D{~I7M^d z#|P10EdK%cUinz2B5`HRSD5kpbwLaQj~K5T>{Q2dSRAi8MMP;fxmi(}_fQW{e^6y& zQV>|96+o7!ue0GP^NpP3cMwlvjt3Y=K*Vo~L_#JU&a*_A=MA3N8beXdI*ocb#OVcp z1&e(ZFrGv#Db+ev&fvPxq7R@pM$zV4HE}DNeXU0m zFqb&sV;+QrOL zE@sSiu|v4EdM@THpNpB~Rm$gLW@#5IJ<9XKR^C*FWJ=MfZ{VOacR|D0Xl7n`=#^W4 z@Z}Hfza#v~OL}gs`(AX3n)-P+>1<_W*5y4=NNv_&iRx0`T>;|>kSmp?f)RWtz?fQV zxO1bspz*qmC2cR3D`YYyp`lRDn9Q@Mo>9kSHb~Y`{>0Wyt{*Rp zpgmtmCl)v3Z)aR(&|H?;h?^gN;--%hN@ zYncgBkE0~fIoOLUzNH3T=(kZ__ItO2+vhjF&f8(aUmKW)ms1IOKjOYXPR_xfgU5@< zR6qQEzCrWfs0Q^CRJx5{1JB1#X#SRB_;t-fgPPx{wlQzS=@NsMyiu7`y+xKc)-bgV zU!Z@Z^0@p&@8hci2-lO|dD8_3EqEgh`c<^+Bz#rmZ!3pCeu2M|aPAw{H|l#SXlA=X zm%Lsf?;gAHqlzhGFG4Q;*U7j%2x7K)y zasFQlJT>Akp3o~d;z<#0>TK`){NIgRH}#I>^0&;t^}XGXuX%>&q!mlLx8jv-w}j5h zeckGveD|o@eN$5sQ_Z3#o`@FD>CX4QsT(g+)0kIJSD<-Me=nQ$fAy#3CeOUf7*BY# zA8Yl=;V)#Y$QRnP*>$N*PJI(4otAf*T;jD^(7}I}QDe!CjZ6*V< zT-bw`C^f=WOT1;=An?wMUv^-Ac3|f#2FR z!^_@<@mBFvKeSyZ?Pkl_i+qW^SY+AW7Hk+jd$%CB0BO%orL~#n>k?PsS9b;?kzeDm zY!1G`Hx*nDovvN{yN8q8)r?mT{Mv`0XBPCXh0dL#k)`**r|h|%@HXCqiH6a<1b%Io zz&E*DVBdWCPB&v0fcHlIv|ZYqRM+aRq}a>fS<1a zNB6YqBOJxY=o;HoUO(Y)7)hUUT=8faz_{QyRSC=|qkGpY!;$mfpTEij!|Lx(b;~dE O|EiMzE&Tt12mTk?mf>dr literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.Concurrent.xml b/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.Concurrent.xml new file mode 100644 index 000000000..497b59a89 --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.Concurrent.xml @@ -0,0 +1,401 @@ + + + + Nito.AsyncEx.Concurrent + + + + + An async-compatible producer/consumer collection. + + The type of elements contained in the collection. + + + + The underlying collection. + + + + + The maximum number of elements allowed in the collection. + + + + + The mutual-exclusion lock protecting the collection. + + + + + A condition variable that is signalled when the collection is not full. + + + + + A condition variable that is signalled when the collection is completed or not empty. + + + + + A cancellation token source that is canceled when the collection is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection and with a maximum element count. + + The collection to wrap. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection. + + The collection to wrap. + + + + Creates a new async-compatible producer/consumer collection with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection. + + + + + Whether the collection is empty. + + + + + Whether the collection is full. + + + + + Asynchronously marks the producer/consumer collection as complete for adding. + + + + + Synchronously marks the producer/consumer collection as complete for adding. + + + + + Attempts to add an item. + + The item to add. + A cancellation token that can be used to abort the add operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related add operations. May be null if this is the only add operation. + + + + Attempts to add an item. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer collection. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to take an item. + + A cancellation token that can be used to abort the take operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related take operations. May be null if this is the only take operation. + + + + Attempts to take an item. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + + + + The result of a TryTake, TakeFromAny, or TryTakeFromAny operation. + + + + + The collection from which the item was taken, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + + + + A progress implementation that sends progress reports to a producer/consumer collection. + + The type of progress value. + + + + The producer/consumer collection that receives progress reports. + + + + + Initializes a new instance of the class. + + The producer/consumer collection that receives progress reports. + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..55e19452a3f39de0004259055f19391ba7d13007 GIT binary patch literal 95744 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

{ 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 C?eTU1 literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.xml b/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.xml new file mode 100644 index 000000000..d497cca9c --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/portable-net40+netcore451/Nito.AsyncEx.xml @@ -0,0 +1,3930 @@ + + + + Nito.AsyncEx + + + +

+ An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wp8+wpa81/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wp8+wpa81/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..e414e7a28bd04110804695baaa20590f95d80849 GIT binary patch literal 96256 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 + + + Nito.AsyncEx + + + + + An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wpa81/Nito.AsyncEx.Concurrent.dll b/packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wpa81/Nito.AsyncEx.Concurrent.dll new file mode 100644 index 0000000000000000000000000000000000000000..8f91a729a66b1a841138bce7b2061468afd4b8ca GIT binary patch literal 27648 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 + + + Nito.AsyncEx.Concurrent + + + + + An async-compatible producer/consumer collection. + + The type of elements contained in the collection. + + + + The underlying collection. + + + + + The maximum number of elements allowed in the collection. + + + + + The mutual-exclusion lock protecting the collection. + + + + + A condition variable that is signalled when the collection is not full. + + + + + A condition variable that is signalled when the collection is completed or not empty. + + + + + A cancellation token source that is canceled when the collection is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection and with a maximum element count. + + The collection to wrap. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection. + + The collection to wrap. + + + + Creates a new async-compatible producer/consumer collection with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection. + + + + + Whether the collection is empty. + + + + + Whether the collection is full. + + + + + Asynchronously marks the producer/consumer collection as complete for adding. + + + + + Synchronously marks the producer/consumer collection as complete for adding. + + + + + Attempts to add an item. + + The item to add. + A cancellation token that can be used to abort the add operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related add operations. May be null if this is the only add operation. + + + + Attempts to add an item. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer collection. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to take an item. + + A cancellation token that can be used to abort the take operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related take operations. May be null if this is the only take operation. + + + + Attempts to take an item. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + + + + The result of a TryTake, TakeFromAny, or TryTakeFromAny operation. + + + + + The collection from which the item was taken, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + + + + A progress implementation that sends progress reports to a producer/consumer collection. + + The type of progress value. + + + + The producer/consumer collection that receives progress reports. + + + + + Initializes a new instance of the class. + + The producer/consumer collection that receives progress reports. + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wpa81/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/portable-net45+netcore451+wpa81/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..e414e7a28bd04110804695baaa20590f95d80849 GIT binary patch literal 96256 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 + + + Nito.AsyncEx + + + + + An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.Enlightenment.dll b/packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.Enlightenment.dll new file mode 100644 index 0000000000000000000000000000000000000000..bb3f44f9ff95abd7ca31529e4d3cb38b6e58191e GIT binary patch literal 14336 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 literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.Enlightenment.xml b/packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.Enlightenment.xml new file mode 100644 index 000000000..ab5852697 --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.Enlightenment.xml @@ -0,0 +1,54 @@ + + + + Nito.AsyncEx.Enlightenment + + + + + The TaskCreationOptions.DenyChildAttach value, if it exists; otherwise, 0. + + + + + A delegate that will call ExceptionDispatchInfo.Capture followed by ExceptionDispatchInfo.Throw, or null if the ExceptionDispatchInfo type does not exist. + + + + + A delegate that will call Exception.PrepForRemoting, or null if the method does not exist. This member is always null if is non-null. + + + + + Attempts to add the original stack trace to the collection. + + The exception. May not be null. + + + + The underlying queue. + + + + + An event that is set whenever the queue is non-empty or if the queue is empty and done. + + + + + Whether we are done adding tasks to the queue. + + + + + Verifies platform enlightenment. + + + + + Returns a value indicating whether the correct platform enlightenment provider has been loaded. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..55e19452a3f39de0004259055f19391ba7d13007 GIT binary patch literal 95744 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

{ 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 C?eTU1 literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.xml b/packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.xml new file mode 100644 index 000000000..d497cca9c --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/sl5/Nito.AsyncEx.xml @@ -0,0 +1,3930 @@ + + + + Nito.AsyncEx + + + +

+ An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/wp8/Nito.AsyncEx.Enlightenment.dll b/packages/Nito.AsyncEx.4.0.1/lib/wp8/Nito.AsyncEx.Enlightenment.dll new file mode 100644 index 0000000000000000000000000000000000000000..2eaa10ada87179ce42291895b078cbc1a915b31f GIT binary patch literal 9216 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 ayxunhSW0Uk^oyGF<$cHeQsDnh2L20wD(me4 literal 0 HcmV?d00001 diff --git a/packages/Nito.AsyncEx.4.0.1/lib/wp8/Nito.AsyncEx.Enlightenment.xml b/packages/Nito.AsyncEx.4.0.1/lib/wp8/Nito.AsyncEx.Enlightenment.xml new file mode 100644 index 000000000..20ba5eaf0 --- /dev/null +++ b/packages/Nito.AsyncEx.4.0.1/lib/wp8/Nito.AsyncEx.Enlightenment.xml @@ -0,0 +1,33 @@ + + + + Nito.AsyncEx.Enlightenment + + + + + Verifies platform enlightenment. + + + + + Returns a value indicating whether the correct platform enlightenment provider has been loaded. + + + + + The underlying queue. + + + + + An event that is set whenever the queue is non-empty or if the queue is empty and done. + + + + + Whether we are done adding tasks to the queue. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/wp8/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/wp8/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..e414e7a28bd04110804695baaa20590f95d80849 GIT binary patch literal 96256 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 + + + Nito.AsyncEx + + + + + An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.Concurrent.dll b/packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.Concurrent.dll new file mode 100644 index 0000000000000000000000000000000000000000..8f91a729a66b1a841138bce7b2061468afd4b8ca GIT binary patch literal 27648 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 + + + Nito.AsyncEx.Concurrent + + + + + An async-compatible producer/consumer collection. + + The type of elements contained in the collection. + + + + The underlying collection. + + + + + The maximum number of elements allowed in the collection. + + + + + The mutual-exclusion lock protecting the collection. + + + + + A condition variable that is signalled when the collection is not full. + + + + + A condition variable that is signalled when the collection is completed or not empty. + + + + + A cancellation token source that is canceled when the collection is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection and with a maximum element count. + + The collection to wrap. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection wrapping the specified collection. + + The collection to wrap. + + + + Creates a new async-compatible producer/consumer collection with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer collection. + + + + + Whether the collection is empty. + + + + + Whether the collection is full. + + + + + Asynchronously marks the producer/consumer collection as complete for adding. + + + + + Synchronously marks the producer/consumer collection as complete for adding. + + + + + Attempts to add an item. + + The item to add. + A cancellation token that can be used to abort the add operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related add operations. May be null if this is the only add operation. + + + + Attempts to add an item. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Attempts to add an item to the producer/consumer collection. Returns false if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + A cancellation token that can be used to abort the add operation. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. + + The item to add. + + + + Adds an item to the producer/consumer collection. Throws if the producer/consumer collection has completed adding or if the item was rejected by the underlying collection. This method may block the calling thread. + + The item to add. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer collection has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer collection. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to take an item. + + A cancellation token that can be used to abort the take operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related take operations. May be null if this is the only take operation. + + + + Attempts to take an item. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from the producer/consumer collection. + + + + + Attempts to take an item from the producer/consumer collection. This method may block the calling thread. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + A cancellation token that can be used to abort the take operation. + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. + + + + + Takes an item from the producer/consumer collection. Returns the item. Throws if the producer/consumer collection has completed adding and is empty, or if the take from the underlying collection failed. This method may block the calling thread. + + + + + The result of a TryTake, TakeFromAny, or TryTakeFromAny operation. + + + + + The collection from which the item was taken, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to add an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Returns null if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + A cancellation token that can be used to abort the add operation. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Adds an item to any of a number of producer/consumer collections. Returns the producer/consumer collection that received the item. Throws if all producer/consumer collections have completed adding, or if any add operation on an underlying collection failed. This method may block the calling thread. + + The producer/consumer collections. + The item to add. + The producer/consumer collection that received the item. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The producer/consumer collections. + + + + Attempts to take an item from any of a number of producer/consumer collections. The operation "fails" if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + A cancellation token that can be used to abort the take operation. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. + + The array of producer/consumer collections. + + + + Takes an item from any of a number of producer/consumer collections. Throws if all the producer/consumer collections have completed adding and are empty, or if any take operation on an underlying collection fails. This method may block the calling thread. + + The array of producer/consumer collections. + + + + A progress implementation that sends progress reports to a producer/consumer collection. + + The type of progress value. + + + + The producer/consumer collection that receives progress reports. + + + + + Initializes a new instance of the class. + + The producer/consumer collection that receives progress reports. + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.Enlightenment.dll b/packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.Enlightenment.dll new file mode 100644 index 0000000000000000000000000000000000000000..424f0f3f31d4364788fc39e2d624ef0cee04d53b GIT binary patch literal 8192 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 + + + Nito.AsyncEx.Enlightenment + + + + + Verifies platform enlightenment. + + + + + Returns a value indicating whether the correct platform enlightenment provider has been loaded. + + + + diff --git a/packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.dll b/packages/Nito.AsyncEx.4.0.1/lib/wpa81/Nito.AsyncEx.dll new file mode 100644 index 0000000000000000000000000000000000000000..e414e7a28bd04110804695baaa20590f95d80849 GIT binary patch literal 96256 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 + + + Nito.AsyncEx + + + + + An async-compatible auto-reset event. + + + + + The queue of TCSs that other tasks are awaiting. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + The wait queue used to manage waiters. + + + + Creates an async-compatible auto-reset event. + + Whether the auto-reset event is initially set or unset. + + + + Creates an async-compatible auto-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous auto-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. + + The cancellation token used to cancel this wait. + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately, even if the cancellation token is already signalled. If the wait is canceled, then it will not auto-reset this event. This method may block the calling thread. + + The cancellation token used to cancel this wait. + + + + Asynchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. + + + + + Synchronously waits for this event to be set. If the event is set, this method will auto-reset it and return immediately. This method may block the calling thread. + + + + + Sets the event, atomically completing a task returned by . If the event is already set, this method does nothing. + + + + + An async-compatible barrier. + + + + + Mutex used to control access to other fields. + + + + + The TCS used to signal the current phase. + + + + + The current phase. + + + + + The remaining count on this event. + + + + + The total number of participants. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The asynchronous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + The synchonous post-phase action, if any. Either this member or may be non-null, but not both. + + + + + Creates an async-compatible barrier. + + The number of participants. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Creates an async-compatible barrier. + + The number of participants. + The post-phase action to execute at the end of every phase. + + + + Gets a semi-unique identifier for this asynchronous barrier. + + + + + Gets the current phase of the barrier. + + + + + Gets the number of participants in this barrier. + + + + + Gets the number of participants for this phase that have not yet signalled. + + + + + Starts executing the post-phase action and returns a representing the action. + + + + + Signals completions to this barrier. Returns the task for the current phase, which may already be completed. Returns null if the signal count is greater than the remaining participant count. + + The number of completions to signal. + Whether the participants should be removed permanently. + + + + Signals the specified number of completions to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + + + + Signals the specified number of completions to this barrier and synchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of completion signals to send to this barrier. + The cancellation token used to cancel the wait. If this signal completes the phase and there is no post-phase action, then this token is ignored. + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Signals a completion to this barrier and asynchronously waits for the phase to complete. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Adds the specified number of participants to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + The number of participants to add. + + + + Adds a participant to the barrier. Returns the current phase. This method may not be called during the post-phase action. + + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and asynchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + + + + Removes the specified number of participants from the barrier and synchronously waits for the phase to complete. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The number of participants to remove. + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes the specified number of participants from the barrier. These participants must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + The number of participants to remove. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and asynchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + + + + Removes one participant from the barrier and synchronously waits for the phase to complete. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this removal completes the phase and there is no post-phase action, then this token is ignored. + + + + Removes one participant from the barrier. This participant must not have signalled the barrier for this phase yet. This method may not be called during the post-phase action. + + + + + An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield). + + + + + The lock associated with this condition variable. + + + + + The queue of waiting tasks. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + The wait queue used to manage waiters. + + + + Creates an async-compatible condition variable associated with an async-compatible lock. + + The lock associated with this condition variable. + + + + Gets a semi-unique identifier for this asynchronous condition variable. + + + + + Sends a signal to a single task waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Sends a signal to all tasks waiting on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns, even if the method is cancelled. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a signal on this condition variable. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Synchronously waits for a signal on this condition variable. This method may block the calling thread. The associated lock MUST be held when calling this method, and it will still be held when this method returns. + + + + + Provides a context for asynchronous operations. This class is threadsafe. + + + may only be called once. After returns, the async context should be disposed. + + + + + The queue holding the actions to run. + + + + + The for this . + + + + + The for this . + + + + + The for this . + + + + + The number of outstanding operations, including actions in the queue. + + + + + Initializes a new instance of the class. This is an advanced operation; most people should use one of the static Run methods instead. + + + + + Gets a semi-unique identifier for this asynchronous context. This is the same identifier as the context's . + + + + + Increments the outstanding asynchronous operation count. + + + + + Decrements the outstanding asynchronous operation count. + + + + + Queues a task for execution by . If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The task to queue. May not be null. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Disposes all resources used by this class. This method should NOT be called while is executing. + + + + + Executes all queued actions. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from tasks that are supposed to propagate errors. + + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task. This method will unwrap and propagate errors from the task. + + The result type of the task. + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. This method will unwrap and propagate errors from the task proxy. + + The action to execute. May not be null. + + + + Queues a task for execution, and begins executing all tasks in the queue. This method returns when all tasks have been completed and the outstanding asynchronous operation count is zero. Returns the result of the task proxy. This method will unwrap and propagate errors from the task proxy. + + The result type of the task. + The action to execute. May not be null. + + + + Gets the current for this thread, or null if this thread is not currently running in an . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . From inside , this value is always equal to . + + + + + Gets the for this . Be careful with async delegates; you may need to call and to prevent early termination of this . + + + + + The implementation used by . + + + + + The async context. + + + + + Initializes a new instance of the class. + + The async context. + + + + Gets the async context. + + + + + Dispatches an asynchronous message to the async context. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Dispatches an asynchronous message to the async context, and waits for it to complete. + + The delegate to call. May not be null. + The object passed to the delegate. + + + + Responds to the notification that an operation has started by incrementing the outstanding asynchronous operation count. + + + + + Responds to the notification that an operation has completed by decrementing the outstanding asynchronous operation count. + + + + + Creates a copy of the synchronization context. + + A new object. + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + Determines whether the specified is equal to this instance. It is considered equal if it refers to the same underlying async context as this instance. + + The to compare with this instance. + true if the specified is equal to this instance; otherwise, false. + + + + A blocking queue. + + + + + The underlying blocking collection. + + + + + Initializes a new instance of the class. + + + + + Gets a blocking enumerable that removes items from the queue. This enumerable only completes after has been called. + + A blocking enumerable that removes items from the queue. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Attempts to add the item to the queue. If the queue has been marked as complete for adding, this method returns false. + + The item to enqueue. + A value indicating whether exceptions on this task should be propagated out of the main loop. + + + + Marks the queue as complete for adding, allowing the enumerator returned from to eventually complete. This method may be called several times. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + A task scheduler which schedules tasks to an async context. + + + + + The async context for this task scheduler. + + + + + Initializes a new instance of the class. + + The async context for this task scheduler. May not be null. + + + + Generates an enumerable of instances currently queued to the scheduler waiting to be executed. + + An enumerable that allows traversal of tasks currently queued to this scheduler. + + + + Queues a to the scheduler. If all tasks have been completed and the outstanding asynchronous operation count is zero, then this method has undefined behavior. + + The to be queued. + + + + Determines whether the provided can be executed synchronously in this call, and if it can, executes it. + + The to be executed. + A Boolean denoting whether or not task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. + A Boolean value indicating whether the task was executed inline. + The was already executed. + + + + Indicates the maximum concurrency level this is able to support. + + + + + Exposes the base method. + + The task to attempt to execute. + + + + A thread that executes actions within an . + + + + + The child thread. + + + + + The asynchronous context executed by the child thread. + + + + + A flag used to ensure we only call once during complex join/dispose operations. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. + + + + + Initializes a new instance of the class, creating a child thread waiting for commands. If is true, then the child thread is an STA thread (throwing if the platform does not support STA threads). + + + + + Gets the executed by this thread. + + + + + Permits the thread to exit, if we have not already done so. + + + + + Requests the thread to exit and returns a task representing the exit of the thread. The thread will exit when all outstanding asynchronous operations complete. + + + + + Requests the thread to exit. + + + + + Gets the for this thread, which can be used to schedule work to this thread. + + + + + An async-compatible countdown event. + + + + + The TCS used to signal this event. + + + + + The remaining count on this event. + + + + + Creates an async-compatible countdown event. + + The number of signals this event will need before it becomes set. Must be greater than zero. + + + + Gets a semi-unique identifier for this asynchronous countdown event. + + + + + Gets the current number of remaining signals before this event becomes set. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Attempts to modify the current count by the specified amount. This method returns false if the new current count value would be invalid, or if the count has already reached zero. + + The amount to change the current count. This may be positive or negative, but not zero. + + + + Attempts to add the specified value to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method returns false if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method returns false if the count is already at zero or if the new count would be less than zero. + + + + + Attempts to add the specified value to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + The amount to change the current count. This must be greater than zero. + + + + Attempts to add one to the current count. This method throws if the count is already at zero or if the new count would be greater than . + + + + + Attempts to subtract the specified value from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + The amount to change the current count. This must be greater than zero. + + + + Attempts to subtract one from the current count. This method throws if the count is already at zero or if the new count would be less than zero. + + + + + Provides asynchronous wrappers. + + The type of the result of the asychronous operation. + + + + Wraps a begin/end asynchronous method. + + The begin method. May not be null. + The end method. May not be null. + The result of the asynchronous operation. + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. May not be null. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. + The event args. + + + + Gets a task that will complete the next time an event is raised. The event type must follow the standard void EventHandlerType(object, TResult) pattern. Be mindful of race conditions (i.e., if the event is raised immediately before this method is called, your task may never complete). + + The object that publishes the event. May not be null. + The name of the event. May not be null. + The event args. + + + + Manages the subscription to an event on a target object, triggering a task (and unsubscribing) when the event is raised. + + The type of event arguments passed to the event. + + + + The source for our task, which is returned to the user. + + + + + The subscription to the event. + + + + + The object that publishes the event. + + + + + The event to which we subscribe. + + + + + Subscribes to the specified event. + + The object that publishes the event. + The event to which we subscribe. + + + + Gets the task that is completed when the event is raised. + + + + + Private method that handles event completion. Do not call this method; it is public to avoid security problems when reflecting. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + The result of the asynchronous operation. + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + The result of the asynchronous operation. + + + + Provides asynchronous wrappers. + + + + + Wraps a begin/end asynchronous method. + + The begin method. + The end method. + + + + + Wraps a into the Begin method of an APM pattern. + + The task to wrap. + The callback method passed into the Begin method of the APM pattern. + The state passed into the Begin method of the APM pattern. + The asynchronous operation, to be returned by the Begin method of the APM pattern. + + + + Wraps a into the End method of an APM pattern. + + The asynchronous operation returned by the matching Begin method of this APM pattern. + The result of the asynchronous operation, to be returned by the End method of the APM pattern. + + + + Wraps a with a . When the is signalled, the returned is completed. If the handle is already signalled, this method acts synchronously. + + The to observe. + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the handle is already signalled or the timeout is zero, this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + + + + Wraps a with a . If the is signalled, the returned task is (successfully) completed. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled or the cancellation token is already cancelled, this method acts synchronously. + + The to observe. + The cancellation token that cancels observing the . + + + + Wraps a with a . If the is signalled, the returned task is completed with a true result. If the observation times out, the returned task is completed with a false result. If the observation is cancelled, the returned task is cancelled. If the handle is already signalled, the timeout is zero, or the cancellation token is already cancelled, then this method acts synchronously. + + The to observe. + The timeout after which the is no longer observed. + The cancellation token that cancels observing the . + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The begin method. + The end method. + Argument 0. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The begin method. + The end method. + Argument 0. + Argument 1. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + + + + + Wraps a begin/end asynchronous method. + + The type of argument 0. + The type of argument 1. + The type of argument 2. + The type of argument 3. + The type of argument 4. + The type of argument 5. + The type of argument 6. + The type of argument 7. + The type of argument 8. + The type of argument 9. + The type of argument 10. + The type of argument 11. + The type of argument 12. + The type of argument 13. + The begin method. + The end method. + Argument 0. + Argument 1. + Argument 2. + Argument 3. + Argument 4. + Argument 5. + Argument 6. + Argument 7. + Argument 8. + Argument 9. + Argument 10. + Argument 11. + Argument 12. + Argument 13. + + + + + Provides support for asynchronous lazy initialization. This type is fully threadsafe. + + The type of object that is being asynchronously initialized. + + + + The underlying lazy task. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Initializes a new instance of the class. + + The delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Initializes a new instance of the class. + + The asynchronous delegate that is invoked on a background thread to produce the value when it is needed. May not be null. + + + + Gets a semi-unique identifier for this asynchronous lazy instance. + + + + + Whether the asynchronous factory method has started. This is initially false and becomes true when this instance is awaited or after is called. + + + + + Asynchronous infrastructure support. This method permits instances of to be await'ed. + + + + + Starts the asynchronous initialization, if it has not already started. + + + + + A mutual exclusion lock that is compatible with async. Note that this lock is not recursive! + + + + + Whether the lock is taken by a task. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock. + + + + + A task that is completed with the key object for this lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible mutual exclusion lock. + + + + + Creates a new async-compatible mutual exclusion lock using the specified wait queue. + + The wait queue used to manage waiters. + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + + + + Asynchronously acquires the lock. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + + + + Releases the lock. + + + + + The disposable which releases the lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + An async-compatible manual-reset event. + + + + + The object used for synchronization. + + + + + The current state of the event. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + Creates an async-compatible manual-reset event. + + Whether the manual-reset event is initially set or unset. + + + + Creates an async-compatible manual-reset event that is initially unset. + + + + + Gets a semi-unique identifier for this asynchronous manual-reset event. + + + + + Whether this event is currently set. This member is seldom used; code using this member has a high possibility of race conditions. + + + + + Asynchronously waits for this event to be set. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + + + + Synchronously waits for this event to be set. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this token is already canceled, this method will first check whether the event is set. + + + + Sets the event, atomically completing every task returned by . If the event is already set, this method does nothing. + + + + + Resets the event. If the event is already reset, this method does nothing. + + + + + An async-compatible monitor. + + + + + The lock. + + + + + The condition variable. + + + + + Constructs a new monitor. + + + + + Constructs a new monitor. + + + + + Gets a semi-unique identifier for this monitor. + + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + A disposable that leaves the monitor when disposed. + + + + Synchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + The cancellation token used to cancel the enter. If this is already set, then this method will attempt to enter the monitor immediately (succeeding if the monitor is currently available). + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. + + A disposable that leaves the monitor when disposed. + + + + Asynchronously enters the monitor. Returns a disposable that leaves the monitor when disposed. This method may block the calling thread. + + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns, even if the method is cancelled. This method internally will leave the monitor while waiting for a notification. + + The cancellation signal used to cancel this wait. + + + + Asynchronously waits for a pulse signal on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Asynchronously waits for a pulse signal on this monitor. This method may block the calling thread. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. This method internally will leave the monitor while waiting for a notification. + + + + + Sends a signal to a single task waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + Sends a signal to all tasks waiting on this monitor. The monitor MUST already be entered when calling this method, and it will still be entered when this method returns. + + + + + An async-compatible producer/consumer queue. + + The type of elements contained in the queue. + + + + The underlying queue. + + + + + The maximum number of elements allowed in the queue. + + + + + The mutual-exclusion lock protecting the queue. + + + + + A condition variable that is signalled when the queue is not full. + + + + + A condition variable that is signalled when the queue is completed or not empty. + + + + + A cancellation token source that is canceled when the queue is marked completed for adding. + + + + + A cached result that is common when calling . + + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements and a maximum element count. + + The initial elements to place in the queue. + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue with the specified initial elements. + + The initial elements to place in the queue. + + + + Creates a new async-compatible producer/consumer queue with a maximum element count. + + The maximum element count. This must be greater than zero. + + + + Creates a new async-compatible producer/consumer queue. + + + + + Whether the queue is empty. + + + + + Whether the queue is full. + + + + + Releases resources held by this instance. After disposal, any use of this instance is undefined. + + + + + Asynchronously marks the producer/consumer queue as complete for adding. + + + + + Synchronously marks the producer/consumer queue as complete for adding. + + + + + Attempts to enqueue an item. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related enqueue operations. May be null if this is the only enqueue operation. + + + + Attempts to enqueue an item. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Attempts to enqueue an item to the producer/consumer queue. Returns false if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. This method may block the calling thread. + + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + + + + Enqueues an item to the producer/consumer queue. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Enqueues an item to the producer/consumer queue. This method may block the calling thread. Throws if the producer/consumer queue has completed adding. + + The item to enqueue. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + A cancellation token that can be used to abort the asynchronous wait. + + + + Asynchronously waits until an item is available to dequeue. Returns false if the producer/consumer queue has completed adding and there are no more items. + + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + A cancellation token that can be used to abort the synchronous enumeration. + + + + Provides a (synchronous) consuming enumerable for items in the producer/consumer queue. + + + + + Attempts to dequeue an item. + + A cancellation token that can be used to abort the dequeue operation. If is not null, then this token must include signals from the object. + A synchronization object used to cancel related dequeue operations. May be null if this is the only dequeue operation. + + + + Attempts to dequeue an item. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from the producer/consumer queue. + + + + + Attempts to dequeue an item from the producer/consumer queue. This method may block the calling thread. + + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + Dequeues an item from the producer/consumer queue. Returns the dequeued item. This method may block the calling thread. Throws if the producer/consumer queue has completed adding and is empty. + + The dequeued item. + + + + The result of a TryDequeue, DequeueFromAny, or TryDequeueFromAny operation. + + + + + The queue from which the item was dequeued, or null if the operation failed. + + + + + Whether the operation was successful. This is true if and only if is not null. + + + + + The dequeued item. This is only valid if is not null. + + + + + Provides methods for working on multiple instances. + + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to enqueue an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Returns null if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + A cancellation token that can be used to abort the enqueue operation. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Enqueues an item to any of a number of producer/consumer queues. Returns the producer/consumer queue that received the item. Throws if all producer/consumer queues have completed adding. This method may block the calling thread. + + The producer/consumer queues. + The item to enqueue. + The producer/consumer queue that received the item. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Attempts to dequeue an item from any of a number of producer/consumer queues. The operation "fails" if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + A cancellation token that can be used to abort the dequeue operation. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. + + The producer/consumer queues. + + + + Dequeues an item from any of a number of producer/consumer queues. Throws if all the producer/consumer queues have completed adding and are empty. This method may block the calling thread. + + The producer/consumer queues. + + + + A reader/writer lock that is compatible with async. Note that this lock is not recursive! + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as writers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as readers. + + + + + The queue of TCSs that other tasks are awaiting to acquire the lock as upgradeable readers. + + + + + The queue of TCSs that other tasks are awaiting to upgrade a reader lock to a writer lock. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The current upgradeable reader lock key, if any. If this is not null, then there is an upgradeable reader lock held. + + + + + Number of reader locks held (including an upgradeable reader lock, if applicable); -1 if a writer lock is held; 0 if no locks are held. + + + + + The object used for mutual exclusion. + + + + + A task that is completed with the reader key object for this lock. + + + + + A task that is completed with the writer key object for this lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Creates a new async-compatible reader/writer lock. + + + + + Gets a semi-unique identifier for this asynchronous lock. + + + + + Applies a continuation to the task that will call if the task is canceled. This method may not be called while holding the sync lock. + + The task to observe for cancellation. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a reader. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Synchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a writer. Returns a disposable that releases the lock when disposed. This method may block the calling thread. + + A disposable that releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the lock. If this is already set, then this method will attempt to take the lock immediately (succeeding if the lock is currently available). + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Synchronously acquires the lock as a reader with the option to upgrade. Returns a key that can be used to upgrade and downgrade the lock, and releases the lock when disposed. This method may block the calling thread. + + A key that can be used to upgrade and downgrade this lock, and releases the lock when disposed. + + + + Asynchronously upgrades a reader lock to a writer lock. This method assumes the sync lock is already held. + + + + + Downgrades a writer lock to a reader lock. This method assumes the sync lock is already held. + + + + + Grants lock(s) to waiting tasks. This method assumes the sync lock is already held. + + + + + Releases the lock as a reader. + + + + + Releases the lock as a writer. + + + + + Releases the lock as an upgradeable reader. + + + + + The disposable which releases the reader lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which releases the writer lock. + + + + + The lock to release. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Release the lock. + + + + + The disposable which manages the upgradeable reader lock. + + + + + The lock to release. + + + + + The task doing the upgrade. + + + + + A task that is completed with the upgrade key object for this key. + + + + + Creates the key for a lock. + + The lock to release. May not be null. + + + + Gets a value indicating whether this lock has been upgraded to a write lock. + + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + The cancellation token used to cancel the upgrade. If this is already set, then this method will attempt to upgrade immediately (succeeding if the lock is currently available). + + + + Upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. + + + + + Synchronously upgrades the reader lock to a writer lock. Returns a disposable that downgrades the writer lock to a reader lock when disposed. This method may block the calling thread. + + + + + Downgrades the writer lock to a reader lock. + + + + + Release the lock. + + + + + The disposable which downgrades an upgradeable reader key. + + + + + The upgradeable reader key to downgrade. + + + + + Creates the upgrade key for an upgradeable reader key. + + The upgradeable reader key to downgrade. May not be null. + + + + Downgrade the upgradeable reader key. + + + + + An async-compatible semaphore. Alternatively, you could use SemaphoreSlim on .NET 4.5 / Windows Store. + + + + + The queue of TCSs that other tasks are awaiting to acquire the semaphore. + + + + + The number of waits that will be immediately granted. + + + + + The semi-unique identifier for this instance. This is 0 if the id has not yet been created. + + + + + The object used for mutual exclusion. + + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + The wait queue used to manage waiters. + + + + Creates a new async-compatible semaphore with the specified initial count. + + The initial count for this semaphore. This must be greater than or equal to zero. + + + + Gets a semi-unique identifier for this asynchronous semaphore. + + + + + Gets the number of slots currently available on this semaphore. + + + + + Asynchronously waits for a slot in the semaphore to be available. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + The cancellation token used to cancel the wait. If this is already set, then this method will attempt to take the slot immediately (succeeding if a slot is currently available). + + + + Asynchronously waits for a slot in the semaphore to be available. + + + + + Synchronously waits for a slot in the semaphore to be available. This method may block the calling thread. + + + + + Releases the semaphore. + + + + + Releases the semaphore. + + + + + A collection of cancelable instances. Implementations must be threadsafe and must work correctly if the caller is holding a lock. + + The type of the results. If this isn't needed, use . + + + + Gets whether the queue is empty. + + + + + Creates a new entry and queues it to this wait queue. The returned task must support both synchronous and asynchronous waits. + + The queued task. + + + + Removes a single entry in the wait queue. Returns a disposable that completes that entry. + + The result used to complete the wait queue entry. If this isn't needed, use default(T). + + + + Removes all entries in the wait queue. Returns a disposable that completes all entries. + + The result used to complete the wait queue entries. If this isn't needed, use default(T). + + + + Attempts to remove an entry from the wait queue. Returns a disposable that cancels the entry. + + The task to cancel. + A value indicating whether the entry was found and canceled. + + + + Removes all entries from the wait queue. Returns a disposable that cancels all entries. + + + + + Provides extension methods for wait queues. + + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + The token used to cancel the wait. + The queued task. + + + + Creates a new entry and queues it to this wait queue. If the cancellation token is already canceled, this method immediately returns a canceled task without modifying the wait queue. + + The wait queue. + A synchronization object taken while cancelling the entry. + The token used to cancel the wait. + The queued task. + + + + The default wait queue implementation, which uses a double-ended queue. + + The type of the results. If this isn't needed, use . + + + + An awaitable wrapper around a task whose result is disposable. The wrapper is not disposable, so this prevents usage errors like "using (MyAsync())" when the appropriate usage should be "using (await MyAsync())". + + The type of the result of the underlying task. + + + + The underlying task. + + + + + Initializes a new awaitable wrapper around the specified task. + + The underlying task to wrap. + + + + Returns the underlying task. + + + + + Implicit conversion to the underlying task. + + The awaitable wrapper. + + + + Infrastructure. Returns the task awaiter for the underlying task. + + + + + Infrastructure. Returns a configured task awaiter for the underlying task. + + Whether to attempt to marshal the continuation back to the captured context. + + + + Provides extension methods for . + + + + + Returns a that is canceled when this is canceled. This method will leak resources if the cancellation token is long-lived; use for a similar approach with proper resource management. + + The to monitor. + A that is canceled when this is canceled. + + + + Returns a which holds the task for this cancellation token. + + The cancellation token to observe. + + + + Holds the task for a cancellation token, as well as the token registration. The registration is disposed when this instance is disposed. + + + + + The cancellation token registration, if any. This is null if the registration was not necessary. + + + + + Creates a task for the specified cancellation token, registering with the token if necessary. + + The cancellation token to observe. + + + + Gets the task for the source cancellation token. + + + + + Disposes the cancellation token registration, if any. Note that this may cause to never complete. + + + + + Helper methods for cancellation tokens. + + + + + Initializes the static members. + + + + + Gets , a cancellation token that is never canceled. + + + + + Gets a cancellation token that is already canceled. + + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Creates a cancellation token that is canceled after the due time. + + The due time after which to cancel the token. + A cancellation token that is canceled after the due time. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Reduces a set of cancellation tokens by removing any cancellation tokens that cannot be canceled. If any tokens are already canceled, the returned token will be canceled. + + The cancellation tokens to reduce. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + The options to use for the task continuation. + + + + Creates a cancellation token that is canceled when the provided completes. + + The task to observe. + + + + Manages the deferrals for a "command" event that may have asynchonous handlers. + + + + + The countdown event, triggered when all deferrals have completed. This is null if there are no deferrals. + + + + + Gets a deferral. The deferral is complete when disposed. + + The deferral. + + + + Notifies the manager that all deferrals have been requested, and returns a task that is completed when all deferrals have completed. + + A task that is completed when all deferrals have completed. + + + + A deferral. + + + + + The countdown event of the deferral manager. + + + + + Creates a new deferral referencing the countdown event of the deferral manager. + + The countdown event of the deferral manager. + + + + Completes the deferral. + + + + + Provides helper (non-extension) methods dealing with exceptions. + + + + + Attempts to prepare the exception for re-throwing by preserving the stack trace. The returned exception should be immediately thrown. + + The exception. May not be null. + The that was passed into this method. + + + + Allocates Ids for instances on demand. 0 is an invalid/unassigned Id. Ids may be non-unique in very long-running systems. This is similar to the Id system used by and . + + The type for which ids are generated. + + + + The last id generated for this type. This is 0 if no ids have been generated. + + + + + Returns the id, allocating it if necessary. + + A reference to the field containing the id. + + + + A that may or may not also reference its own . Instances of this type should always be disposed. + + + + + The , if any. If this is not null, then is _cts.Token. + + + + + The . If is not null, then this is _cts.Token. + + + + + Creates a normalized cancellation token that can never be canceled. + + + + + Creates a normalized cancellation token from a . is set to the property of . + + The source for this token. + + + + Creates a normalized cancellation token from a . is set to . + + The source for this token. + + + + Releases any resources used by this normalized cancellation token. + + + + + Gets the for this normalized cancellation token. + + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets a task that completes successfully when completes (successfully, faulted, or canceled). This property never changes and is never null. + + + + + Gets the current task status. This property raises a notification when the task completes. + + + + + Gets whether the task has completed. This property raises a notification when the value changes to true. + + + + + Gets whether the task is busy (not completed). This property raises a notification when the value changes to false. + + + + + Gets whether the task has completed successfully. This property raises a notification when the value changes to true. + + + + + Gets whether the task has been canceled. This property raises a notification only if the task is canceled (i.e., if the value changes to true). + + + + + Gets whether the task has faulted. This property raises a notification only if the task faults (i.e., if the value changes to true). + + + + + Gets the wrapped faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Gets the error message for the original faulting exception for the task. Returns null if the task is not faulted. This property raises a notification only if the task faults (i.e., if the value changes to non-null). + + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Gets the task being watched. This property never changes and is never null. + + + + + Gets the result of the task. Returns the default value of if the task has not completed successfully. This property raises a notification when the task completes successfully. + + + + + Factory for task completion notifiers. + + + + + Creates a new task notifier watching the specified task. + + The task to watch. + A new task notifier watching the specified task. + + + + Creates a new task notifier watching the specified task. + + The type of the task result. + The task to watch. + A new task notifier watching the specified task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Executes the specified asynchronous code and creates a new task notifier watching the returned task. + + The asynchronous code to execute. + A new task notifier watching the returned task. + + + + Watches a task and raises property-changed notifications when the task completes. + + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + Watches a task and raises property-changed notifications when the task completes. + + The type of the task result. + + + + Initializes a task notifier watching the specified task. + + The task to watch. + + + + The source (controller) of a "pause token", which can be used to cooperatively pause and unpause operations. + + + + + The MRE that manages the "pause" logic. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether or not this source (and its tokens) are in the paused state. + + + + + Gets a pause token controlled by this source. + + + + + A type that allows an operation to be cooperatively paused. + + + + + The MRE that manages the "pause" logic, or null if this token can never be paused. When the MRE is set, the token is not paused; when the MRE is not set, the token is paused. + + + + + Whether this token can ever possibly be paused. + + + + + Whether or not this token is in the paused state. + + + + + Asynchronously waits until the pause token is not paused. + + + + + Asynchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + Synchronously waits until the pause token is not paused. + + + + + Synchronously waits until the pause token is not paused, or until this wait is canceled by the cancellation token. + + The cancellation token to observe. If the token is already canceled, this method will first check if the pause token is unpaused, and will return without an exception in that case. + + + + A progress implementation that stores progress updates in a property. If this instance is created on a UI thread, its property is suitable for data binding. + + The type of progress value. + + + + The context of the thread that created this instance. + + + + + The last reported progress value. + + + + + Initializes a new instance of the class. + + The initial progress value. + + + + Initializes a new instance of the class. + + + + + The last reported progress value. + + + + + Occurs when the property value changes. + + + + + Provides helper types for . + + + + + Retrieves the current synchronization context, or the default synchronization context if there is no current synchronization context. + + + + + Utility class for temporarily switching implementations. + + + + + The previous . + + + + + Whether this object has already been disposed. + + + + + Initializes a new instance of the class, installing the new . + + The new . + + + + Restores the old . + + + + + Provides synchronous extension methods for tasks. + + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + + + + Waits for the task to complete, unwrapping any exceptions. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + The result of the task. + + + + Waits for the task to complete, unwrapping any exceptions. + + The type of the result of the task. + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The result of the task. + The was cancelled before the completed, or the raised an . + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + + + + Waits for the task to complete, but does not raise task exceptions. The task exception (if any) is unobserved. + + The task. May not be null. + A cancellation token to observe while waiting for the task to complete. + The was cancelled before the completed. + + + + Represents the producer side of a unbound to a delegate, providing access to the consumer side through the property. + + + + + The underlying TCS. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified state. + + The state to use as the underlying 's . + + + + Initializes a new instance of the class with the specified options. + + The options to use when creating the underlying . + + + + Initializes a new instance of the class with the specified state and options. + + The state to use as the underlying 's . + The options to use when creating the underlying . + + + + Gets the created by this . + + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The exception to bind to this . May not be null. + The underlying has already been completed. + + + + Transitions the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + The exception to bind to this . May not be null. + true if the operation was successful; otherwise, false. + + + + Attempts to transition the underlying into the state. + + The collection of exceptions to bind to this . May not be null or contain null elements. + true if the operation was successful; otherwise, false. + + + + Transitions the underlying into the state. + + The underlying has already been completed. + + + + Attempts to transition the underlying into the state. + + true if the operation was successful; otherwise, false. + + + + Provides extension methods for . + + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the target asynchronous operation. + The type of the result of the source asynchronous operation. + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + The delegate used to retrieve the result. This is only invoked if indicates successful completion. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The task. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a , propagating the completion of . + + The task completion source. May not be null. + The event arguments passed to the completion event. May not be null. + true if this method completed the task completion source; false if it was already completed. + + + + Attempts to complete a with the specified value, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The result of the asynchronous operation. + + + + Attempts to complete a , forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + + + + Attempts to complete a as canceled, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exception to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The type of the result of the asynchronous operation. + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Attempts to complete a as faulted, forcing all continuations onto a threadpool thread even if they specified ExecuteSynchronously. + + The task completion source. May not be null. + The exceptions to bind to the task. + + + + Provides completed task constants. + + + + + A task that has been completed with the value true. + + + + + A task that has been completed with the value false. + + + + + A task that has been completed with the value 0. + + + + + A task that has been completed with the value -1. + + + + + A that has been completed. + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides completed task constants. + + The type of the task result. + + + + A task that has been completed with the default value of . + + + + + A that will never complete. + + + + + A task that has been canceled. + + + + + Provides extension methods for tasks. + + + + + Creates a new array of tasks which complete in order. + + The type of the results of the tasks. + The tasks to order by completion. + + + + Provides extension methods for task factories. + + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + Queues work to the task factory and returns a proxy representing that work. + + The . May not be null. + The action delegate to execute. May not be null. + The started task. + + + + A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle). + + The type of elements contained in the deque. + + + + The default capacity. + + + + + The circular buffer that holds the view. + + + + + The offset into where the view begins. + + + + + Initializes a new instance of the class with the specified capacity. + + The initial capacity. Must be greater than 0. + + + + Initializes a new instance of the class with the elements from the specified collection. + + The collection. + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether this list is read-only. This implementation always returns false. + + true if this list is read-only; otherwise, false. + + + + Gets or sets the item at the specified index. + + The index of the item to get or set. + is not a valid index in this list. + This property is set and the list is read-only. + + + + Inserts an item to this list at the specified index. + + The zero-based index at which should be inserted. + The object to insert into this list. + + is not a valid index in this list. + + + This list is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in this list. + + + This list is read-only. + + + + + Determines the index of a specific item in this list. + + The object to locate in this list. + The index of if found in this list; otherwise, -1. + + + + Adds an item to the end of this list. + + The object to add to this list. + + This list is read-only. + + + + + Determines whether this list contains a specific value. + + The object to locate in this list. + + true if is found in this list; otherwise, false. + + + + + Copies the elements of this list to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from this slice. The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + + + + Removes the first occurrence of a specific object from this list. + + The object to remove from this list. + + true if was successfully removed from this list; otherwise, false. This method also returns false if is not found in this list. + + + This list is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Checks the argument to see if it refers to a valid insertion point in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an insertion point for the source. + + + + Checks the argument to see if it refers to an existing element in a source of a given length. + + The length of the source. This parameter is not checked for validity. + The index into the source. + is not a valid index to an existing element for the source. + + + + Checks the and arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source. + + The length of the source. This parameter is not checked for validity. + The index into source at which the range begins. + The number of elements in the range. + Either or is less than 0. + The range [offset, offset + count) is not within the range [0, sourceLength). + + + + Gets a value indicating whether this instance is empty. + + + + + Gets a value indicating whether this instance is at full capacity. + + + + + Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in than the end). + + + + + Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than . + + Capacity cannot be set to a value less than . + + + + Gets the number of elements contained in this deque. + + The number of elements contained in this deque. + + + + Applies the offset to , resulting in a buffer index. + + The deque index. + The buffer index. + + + + Gets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element at the specified index. + + + + Sets an element at the specified view index. + + The zero-based view index of the element to get. This index is guaranteed to be valid. + The element to store in the list. + + + + Inserts an element at the specified view index. + + The zero-based view index at which the element should be inserted. This index is guaranteed to be valid. + The element to store in the list. + + + + Removes an element at the specified view index. + + The zero-based view index of the element to remove. This index is guaranteed to be valid. + + + + Increments by using modulo- arithmetic. + + The value by which to increase . May not be negative. + The value of after it was incremented. + + + + Decrements by using modulo- arithmetic. + + The value by which to reduce . May not be negative or greater than . + The value of before it was decremented. + + + + Inserts a single element to the back of the view. must be false when this method is called. + + The element to insert. + + + + Inserts a single element to the front of the view. must be false when this method is called. + + The element to insert. + + + + Removes and returns the last element in the view. must be false when this method is called. + + The former last element. + + + + Removes and returns the first element in the view. must be false when this method is called. + + The former first element. + + + + Inserts a range of elements into the view. + + The index into the view at which the elements are to be inserted. + The elements to insert. + The number of elements in . Must be greater than zero, and the sum of and must be less than or equal to . + + + + Removes a range of elements from the view. + + The index into the view at which the range begins. + The number of elements in the range. This must be greater than 0 and less than or equal to . + + + + Doubles the capacity if necessary to make room for one more element. When this method returns, is false. + + + + + Inserts a single element at the back of this deque. + + The element to insert. + + + + Inserts a single element at the front of this deque. + + The element to insert. + + + + Inserts a collection of elements into this deque. + + The index at which the collection is inserted. + The collection of elements to insert. + is not a valid index to an insertion point for the source. + + + + Removes a range of elements from this deque. + + The index into the deque at which the range begins. + The number of elements to remove. + Either or is less than 0. + The range [, + ) is not within the range [0, ). + + + + Removes and returns the last element of this deque. + + The former last element. + The deque is empty. + + + + Removes and returns the first element of this deque. + + The former first element. + The deque is empty. + + + + Removes all items from this deque. + + + +

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