If you really want to use .NET monitors you can code it up as a try/finally:
Monitor.Enter(m_object) try: if ...: ... finally: Monitor.Exit(m_object) If you'd like to do a slightly more Pythonic lock you could do: import threading x = threading.Lock() with x: pass Or you could combine the two approaches: from System.Threading import Monitor class ObjectLocker(object): def __init__(self, obj): self.obj = obj def __enter__(self): Monitor.Enter(self.obj) def __exit__(self, *args): Monitor.Exit(self.obj) with ObjectLocker(object()): pass > -----Original Message----- > From: users-boun...@lists.ironpython.com [mailto:users- > boun...@lists.ironpython.com] On Behalf Of Sandy Walsh > Sent: Monday, January 11, 2010 9:43 AM > To: users@lists.ironpython.com > Subject: [IronPython] Converting C# to Python ... the lock() keyword? > > Hi, > > I'm converting a C# program to IronPython and running into the C# lock() > command ... what is the equivalent operation in IronPython? > > The C# is like: > > lock(m_object) > if (...) > { > ... > } > > Thanks! > -Sandy _______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com