public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback, RequestCallbackErrorDelegate errorCallback, RequestCallbackDefaultDelegate defaultCallback, int timeout) where T : IPCMessage { Guid guid = Guid.NewGuid(); message.RequestGuid = guid; IPCRequest <T> request = null; TimerEntry timeoutTimer = this.RegisterTimer(delegate(int param0) { this.RequestTimedOut(request); }, timeout); request = new IPCRequest <T>(message, guid, callback, errorCallback, defaultCallback, timeoutTimer); lock (this.m_requests) { this.m_requests.Add(guid, request); } this.Send(message); }
public void SendRequest <T>(IPCMessage message, RequestCallbackDelegate <T> callback, RequestCallbackErrorDelegate errorCallback, RequestCallbackDefaultDelegate defaultCallback, int timeout) where T : IPCMessage { var guid = Guid.NewGuid(); message.RequestGuid = guid; IPCRequest <T> request = null; if (timeout > 0) { var timer = RegisterTimer(delegate { RequestTimedOut(request); }, timeout); request = new IPCRequest <T>(message, guid, callback, errorCallback, defaultCallback, timer); } else { request = new IPCRequest <T>(message, guid, callback, errorCallback, defaultCallback, null); } lock (m_requests) m_requests.Add(guid, request); Send(message); }