public int run()
            {
                int result = 0;

                try
                {
                    QuickFAST.DotNet.DNMessageDeliverer builder = new QuickFAST.DotNet.DNMessageDeliverer();
                    // Handle incoming FAST decoded messages
                    builder.MessageReceived +=
                        new QuickFAST.DotNet.DNMessageDeliverer.MessageReceiver(
                            MessageInterpreter);
                    // Handle log messages
                    builder.LogMessage +=
                        new QuickFAST.DotNet.DNMessageDeliverer.LogHandler(
                            Logger);
                    // Handle communications errors
                    builder.CommunicationError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            CommunicationErrorHandler);
                    // Handle decoding errors
                    builder.DecodingError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            DecoderErrorHandler);

                    GCSettings.LatencyMode = GCLatencyMode.LowLatency;

                    QuickFAST.DotNet.Stopwatch decodeTimer = new QuickFAST.DotNet.Stopwatch();
                    decoder_.run(builder, 0, true);
                    decodeTimer.Stop();
                    ulong decodeLapse = decodeTimer.ElapsedMilliseconds;

                    GCSettings.LatencyMode = GCLatencyMode.Interactive;

#if DEBUG
                    performanceFile_.Write("[debug] ");
#endif // DEBUG
                    performanceFile_.Write("Decoded {0} messages in {1}  milliseconds. [", recordCount_, decodeLapse);
                    performanceFile_.Write("{0:F3} msec/message. = ", (double)decodeLapse / (double)recordCount_);
                    performanceFile_.WriteLine("{0:F3} messages/second]", (double)1000 * (double)recordCount_ / (double)decodeLapse);
                    performanceFile_.Flush();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    result = 1;
                }
                return(result);
            }
            public int run()
            {
                int result = 0;
                try
                {
                    QuickFAST.DotNet.DNMessageDeliverer builder = new QuickFAST.DotNet.DNMessageDeliverer();
                    // Handle incoming FAST decoded messages
                    builder.MessageReceived +=
                        new QuickFAST.DotNet.DNMessageDeliverer.MessageReceiver(
                            MessageInterpreter);
                    // Handle log messages
                    builder.LogMessage +=
                        new QuickFAST.DotNet.DNMessageDeliverer.LogHandler(
                            Logger);
                    // Handle communications errors
                    builder.CommunicationError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            CommunicationErrorHandler);
                    // Handle decoding errors
                    builder.DecodingError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            DecoderErrorHandler);

                    GCSettings.LatencyMode = GCLatencyMode.LowLatency;

                    QuickFAST.DotNet.Stopwatch decodeTimer = new QuickFAST.DotNet.Stopwatch();
                    decoder_.run(builder, 0, true);
                    decodeTimer.Stop();
                    ulong decodeLapse = decodeTimer.ElapsedMilliseconds;

                    GCSettings.LatencyMode = GCLatencyMode.Interactive;

#if DEBUG
                    performanceFile_.Write("[debug] ");
#endif // DEBUG
                    performanceFile_.Write("Decoded {0} messages in {1}  milliseconds. [", recordCount_, decodeLapse);
                    performanceFile_.Write("{0:F3} msec/message. = ", (double)decodeLapse / (double)recordCount_);
                    performanceFile_.WriteLine("{0:F3} messages/second]", (double)1000 * (double)recordCount_ / (double)decodeLapse);
                    performanceFile_.Flush();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    result = 1;
                }
                return result;
            }