C # Threading - Как запустить и остановить поток

Кто-нибудь может дать мне подсказку на тему потоков? Я думаю, что знаю, как сделать несколько вещей, но мне нужно знать, как сделать следующее:

Настройте основной поток, который будет оставаться активным до тех пор, пока я не сообщу о его остановке (если вам интересно, он прекратит работу при получении данных) Затем я хочу запустить второй поток, который будет захватывать данные из текстового поля и должен завершить работу, когда я сообщу об этом, который происходит, когда пользователь нажимает клавишу ввода.

Ура!

Ответы на вопрос(3)

Thread th = new Thread(function1);
th.Start();
th.Abort();

void function1(){
//code here
}

чтобы перезвонить основному потоку с помощью метода Set (). У этого парня довольно хорошая демонстрация в SO о том, как его использовать.

AutoResetEvent разъяснение

Вот как я это делаю ...

public class ThreadA {
    public ThreadA(object[] args) {
        ...
    }
    public void Run() {
        while (true) {
            Thread.sleep(1000); // wait 1 second for something to happen.
            doStuff();
            if(conditionToExitReceived) // what im waiting for...
                break;
        }
        //perform cleanup if there is any...
    }
}

Затем, чтобы запустить это в своем собственном потоке ... (Я делаю это таким образом, потому что я также хочу отправить аргументы в поток)

private void FireThread(){
    Thread thread = new Thread(new ThreadStart(this.startThread));
    thread.start();
}
private void (startThread){
    new ThreadA(args).Run();
}

Поток создается путем вызова "FireThread ()"

Вновь созданный поток будет работать до тех пор, пока не будет выполнено условие остановки, а затем он умрет ...

Вы можете сообщить «главное» делегатам, чтобы сообщить, когда закончится нить ... так что вы можете запустить второй ...

Лучше всего прочитать: Эта статья MSDN

ВАШ ОТВЕТ НА ВОПРОС