// Author:
// Lluis Sanchez (lluis@novell.com)
//
-// Copyright (C) Novell, Inc., 2004
-//
-
+// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
namespace System.Threading
{
- [ComVisibleAttribute (false)]
public class SynchronizationContext
{
+ bool notification_required;
+
[ThreadStatic]
static SynchronizationContext currentContext;
{
return new SynchronizationContext (this);
}
+
+ public bool IsWaitNotificationRequired ()
+ {
+ return notification_required;
+ }
+
+ public virtual void OperationCompleted ()
+ {
+ }
+
+ public virtual void OperationStarted ()
+ {
+ }
public virtual void Post (SendOrPostCallback d, object state)
{
- d.BeginInvoke (state, null, null);
+ ThreadPool.QueueUserWorkItem (new WaitCallback (d), state);
}
public virtual void Send (SendOrPostCallback d, object state)
{
d (state);
}
-
+
+ [Obsolete ("does not exists anymore in 2.0 beta2")]
public virtual void SendOrPost (SendOrPostCallback d, object state)
{
Send (d, state);
}
-
+
[MonoTODO]
- public virtual void SendOrPost (SendOrPostCallback d, object state, ExecutionContext ec)
+ public static void SetSynchronizationContext (SynchronizationContext syncContext)
{
throw new NotImplementedException ();
}
-
+
[MonoTODO]
- public static SynchronizationContextSwitcher SetSynchronizationContext (SynchronizationContext syncContext)
+ protected void SetWaitNotificationRequired ()
{
+ notification_required = true;
throw new NotImplementedException ();
}
[CLSCompliant (false)]
+ [PrePrepareMethod ()]
public virtual int Wait (IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout)
{
return WaitHelper (waitHandles, waitAll, millisecondsTimeout);
[MonoTODO]
[CLSCompliant (false)]
- [ReliabilityContract (Consistency.WillNotCorruptState, CER.MayFail)]
+ [ReliabilityContract (Consistency.WillNotCorruptState, Cer.MayFail)]
+ [PrePrepareMethod ()]
protected static int WaitHelper (IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout)
{
throw new NotImplementedException ();