我有一个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,机器人就会断开连接而没有错误,几乎就像它取代了父线程..
答案 0 :(得分:1)
由于Thread
为IsBackground = true
,应用程序不会等待它,并在所有前台线程完成后立即终止。如果这是Main
方法,程序可能会立即终止,从而断开您的机器人。
然而,这是一个猜测,因为代码的上下文并不明显。