2 // System.Threading.ThreadPool.cs
5 // Dick Porter (dick@ximian.com)
7 // (C) Ximian, Inc. http://www.ximian.com
11 namespace System.Threading
13 public sealed class ThreadPool
15 private ThreadPool () {}
18 public static bool BindHandle(IntPtr osHandle) {
24 public static bool QueueUserWorkItem(WaitCallback callback) {
30 public static bool QueueUserWorkItem(WaitCallback callback,
37 public static RegisteredWaitHandle RegisterWaitForSingleObject(WaitHandle waitObject,
38 WaitOrTimerCallback callback,
40 int millisecondsTimeOutInterval,
41 bool executeOnlyOnce) {
42 if(millisecondsTimeOutInterval < -1) {
43 throw new ArgumentOutOfRangeException("timeout < -1");
50 public static RegisteredWaitHandle RegisterWaitForSingleObject(WaitHandle waitObject,
51 WaitOrTimerCallback callback,
53 long millisecondsTimeOutInterval,
54 bool executeOnlyOnce) {
55 if(millisecondsTimeOutInterval < -1) {
56 throw new ArgumentOutOfRangeException("timeout < -1");
63 public static RegisteredWaitHandle RegisterWaitForSingleObject(WaitHandle waitObject, WaitOrTimerCallback callback, object state, TimeSpan timeout, bool executeOnlyOnce) {
64 // LAMESPEC: I assume it means "timeout" when it says "millisecondsTimeOutInterval"
65 if(timeout.Milliseconds < -1) {
66 throw new ArgumentOutOfRangeException("timeout < -1");
68 if(timeout.Milliseconds > Int32.MaxValue) {
69 throw new NotSupportedException("timeout too large");
75 [CLSCompliant(false)][MonoTODO]
76 public static RegisteredWaitHandle RegisterWaitForSingleObject(WaitHandle waitObject, WaitOrTimerCallback callback, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce) {
82 public static bool UnsafeQueueUserWorkItem(WaitCallback callback, object state) {
88 public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(WaitHandle waitObject, WaitOrTimerCallback callback, object state, int millisecondsTimeOutInterval, bool executeOnlyOnce) {
94 public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(WaitHandle waitObject, WaitOrTimerCallback callback, object state, long millisecondsTimeOutInterval, bool executeOnlyOnce) {
100 public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(WaitHandle waitObject, WaitOrTimerCallback callback, object state, TimeSpan timeout, bool executeOnlyOnce) {
105 [CLSCompliant(false)][MonoTODO]
106 public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(WaitHandle waitObject, WaitOrTimerCallback callback, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce) {