/// <summary> /// Stops event feed updates and closes down feed and thread /// </summary> private void Stop() { if (_eventFeed != null) { _eventFeed.RemoveSecurity(_security); Application.DoEvents(); _eventFeedThread.Abort(); int retryCount = 0; while ((_eventFeedThread.ThreadState != ThreadState.Aborted) && (retryCount < 10)) { Thread.Sleep(100); retryCount++; } _eventFeedThread = null; _eventFeed = null; } }
/// <summary> /// /// </summary> /// <param name="symbol"></param> /// <param name="exchange"></param> private void Initialise(string symbol, string exchange) { //Stop existing event feed if required if (_eventFeed != null) { Stop(); } //Start new event feed using _eventFeed = new ApiSecurityEventFeed(symbol, exchange); //Create stock to process events _security = new Security(symbol); _eventFeed.AddSecurity(_security); securityMarketView.Security = _security; //Initiate replay on separate thread _eventFeedThread = new Thread(_eventFeed.Execute); _eventFeedThread.Start(); }