-2

我有一个 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 机器人就会断开连接而没有错误,就像它取代了父线程一样。

4

1 回答 1

1

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

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

于 2012-11-01T15:19:43.490 回答