程序在调用新线程时断开连接

时间:2012-11-01 15:15:32

标签: c# .net

我有一个IRC机器人,我正在尝试创建一个新线程来做一些工作,线程被调用如下:

           case ".showfiles":
               if (!oThread.IsAlive)
                {
                    say("#channel", "> shared files are:");
                    //a class called shares is in x.cs
                    SHARES SHARED = new SHARES(); 
                    /called a method named begin_find
                    oThread = new Thread(new ThreadStart(SHARED.begin_find));
                    oThread.IsBackground = true;
                    oThread.Start();
                }
                break;

被调用的方法只是扫描文件夹中的所有文件。 如果上面的代码没有提供足够的信息,我会发布其余信息,但基本上只要我输入.showfiles,机器人就会断开连接而没有错误,几乎就像它取代了父线程..

1 个答案:

答案 0 :(得分:1)

由于ThreadIsBackground = true,应用程序不会等待它,并在所有前台线程完成后立即终止。如果这是Main方法,程序可能会立即终止,从而断开您的机器人。

然而,这是一个猜测,因为代码的上下文并不明显。