using System.Threading;
Запустим внутри функции fnbig поток fnsmall
public void fnbig()
{
//код до запуска потока
Thread potok1 = new Thread(fnsmall_1); // создание отдельного потока
potok1.Start(); // запуск потока
// код после запуска первого потока
Thread potok2 = new Thread(fnsmall_2); // создание отдельного потока
potok2.Start();
// десь код после запуска второго потока
}
public void fnsmall_1
{
//тело функции, выполняющейся в отдельном потоке
}
public void fnsmall_2
{
//тело функции, выполняющейся в отдельном потоке
}
После выход из fnbig потоки продолжают свою работу пока до вызываемого ими кода. Есть способ, который позволяет при завершении главной функции, которая запустила потоки, сразу завершать и выполнение потоков, для этого добавляем потоку параметр «IsBackground = true»:
public void fnbig()
{
// код до запуска потока
Thread potok1 = new Thread(fnsmall_1); // создание отдельного потока
potok1.IsBackground = true;
// завершить поток при завершении основного потока (объявлять, если точно знаете, что вам это нужно, иначе поток завершится не выполнив свою работу до конца)
potok1.Start(); // запуск потока
// код после запуска первого потока
}
Теперь у нас поток будет завершён сразу после выполнения fnbig().
Если вы хотите узнать в каком состоянии сейчас находится запущенный поток, то вам необходимо получить его статус «potok1.ThreadState». Подробное описание статусов можете просмотреть на сайте MSDN .
Запустим внутри функции fnbig поток fnsmall
public void fnbig()
{
//код до запуска потока
Thread potok1 = new Thread(fnsmall_1); // создание отдельного потока
potok1.Start(); // запуск потока
// код после запуска первого потока
Thread potok2 = new Thread(fnsmall_2); // создание отдельного потока
potok2.Start();
// десь код после запуска второго потока
}
public void fnsmall_1
{
//тело функции, выполняющейся в отдельном потоке
}
public void fnsmall_2
{
//тело функции, выполняющейся в отдельном потоке
}
После выход из fnbig потоки продолжают свою работу пока до вызываемого ими кода. Есть способ, который позволяет при завершении главной функции, которая запустила потоки, сразу завершать и выполнение потоков, для этого добавляем потоку параметр «IsBackground = true»:
public void fnbig()
{
// код до запуска потока
Thread potok1 = new Thread(fnsmall_1); // создание отдельного потока
potok1.IsBackground = true;
// завершить поток при завершении основного потока (объявлять, если точно знаете, что вам это нужно, иначе поток завершится не выполнив свою работу до конца)
potok1.Start(); // запуск потока
// код после запуска первого потока
}
Теперь у нас поток будет завершён сразу после выполнения fnbig().
Если вы хотите узнать в каком состоянии сейчас находится запущенный поток, то вам необходимо получить его статус «potok1.ThreadState». Подробное описание статусов можете просмотреть на сайте MSDN .
Комментариев нет:
Отправить комментарий
ваше мнение...