FAQ [C#] Что такое многопоток и с чем его едят.

  • Автор темы SectorIder
  • Дата начала
  • Ответы 0
  • Просмотры 29

SectorIder

Интересующийся
Участник

SectorIder

Интересующийся
Участник

Здравствуйте, форумчане, сегодня мы поговорим о такой штуке, как многопоток на решетке.
Собсна основной функционал для использования потоков находится в пространстве имен
Пожалуйста , Вход или Регистрация чтобы увидеть ссылку!
.

"А зачем эти ваши многопотоки нужны?"

Есть у нас, скажем, какая-то игра, в которой игрок может бегать, стрелять, перезаряжаться и так далее и в обычной игре некоторые действия могу выполняться одновременно. Если мы не будем использовать многопоток, то при выполнении одного действия игрок должен будет дожидаться до тех пор, пока действие не закончится.

Собственно наглядный пример использования многопотока вы можете увидеть в любом чите, а именно при выполнении каких-либо функций они выполняются вместе, например вх может спокойно работать вместе с аимом.


А как я могу создать эти ваши потоки в своем приложении?

Все довольно просто. Для начала вы должны создать этот самый поток:
Thread th = new Thread(func);

Где func - какая-либо функция, не принимающая аргументов (у меня func - функция, которая выводит 1).

Затем, если мы хотим чтобы наш поток стартовал, нам следует написать:

th.Start();

Но зачем нам один поток, сделаем же второй по аналогии и вторую функцию, которая будет выводить 2 (к слову нам никто не мешает использовать тот же func и во втором потоке).

Thread th2 = new Thread(func);
th2.Start();

Затем запускаем проект и видим, что у нас синхронно выводятся цифры.
C#:
static void Main(string[] args)
        {
            Thread th = new Thread(func);
            Thread th2 = new Thread(func2);
            th.Start();
            th2.Start();
        }
        
        static void func()
        {
            while (true)
            {
                Console.WriteLine("1");
                Thread.Sleep(100);
            }
        }

        static void func2()
        {
            while (true)
            {
                Console.WriteLine("2");
                Thread.Sleep(100);
            }
        }
Это был самый простой пример о том, как можно использовать потоки, всем спасибо за внимание.
 
Сверху Снизу