public override bool Signal(Message message) { bool signaled = false; lock (this) { if (!this.expired) { this.message = message; signaled = true; } } this.signal.Set(); return signaled; } }