Witam,

Mam maly problem - chcialbym w osobnym watku uruchomic trace'y firebirda a pozniej je elegancko zakonczyc przy uzyciu metody stop.

tak wyglada funkcja main - forma ma 2 buttony start/stop i textbox z ktorego narazie recznie wpisuje id sesji do zamkniecia (odczytane z konsoli)

namespace fbTest
{
    public partial class Form1 : Form
    {     
        Thread oThread;
        loger log;
        FbTrace trace = new FbTrace();

        public Form1()
        {
            InitializeComponent();
            log = new loger();
            oThread = new Thread(new ThreadStart(log.startTrace));
        }

        private void button1_Click(object sender, EventArgs e)
        {
            log.logTraceApi();
            oThread.Start();         
        }

        private void button2_Click(object sender, EventArgs e)
        {
            log.stopTrace(Int32.Parse(textBox1.Text));
        }
    }
}

Klasa loger wyglada tak:

namespace fbTest
{
    public class loger
    {

        FbTrace trace = new FbTrace();

        public void stopTrace(int sID)
        {
            try
            {
                trace.Stop(sID);
            }
            catch (Exception eX)
            {
                MessageBox.Show(eX.ToString());
            }
        }

        public void startTrace()
        {
            try
            {
                trace.Start("session1");
            }
            catch (Exception eX)
            {
                MessageBox.Show(eX.ToString());
            }
        }

        public void logTraceApi()
        {
                    try
                    {
                        trace.ConnectionString = "database=192.168.1.10:\"c:\\_test\\slave.fdb\";user=sysdba;password=masterkey;";

                        trace.ServiceOutput += (object tsender, ServiceOutputEventArgs t) =
                        {
                            Console.WriteLine(t.Message);
                        };
                        trace.DatabasesConfigurations.Add(
                          new FbDatabaseTraceConfiguration()
                          {
                              DatabaseName = string.Empty,
                              Enabled = true,
                              Events = FbDatabaseTraceEvents.StatementStart
                          });

                    }
                    catch (Exception eX)
                    {
                        MessageBox.Show(eX.ToString());
                    }
        }
    }
}

Niestety po nacisnieciu buttona odp. za zakonczenie aplikacja wisi. Jesli recznie zamkne sesjie fbsrvcmgr'em to "puszcza" twierdzac (i to slusznie) ze nie jest obiekt podpiety pod trace.start().

Prosilbym o pomoc w rozwiazaniu problemu.