-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

As the Thread is IsBackground = true, the application does not wait for it and terminates as soon as all foreground threads completed. If this is the Main method, the program might immediately terminate and therefore disconnect your bot.

This is, however, a guess, since the context of your code is not obvious.

于 2012-11-01T15:19:43.490 に答える