Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 22.05.2011
Сообщений: 9
1

Начать выполнение главного потока после того, как выполнятся другие

08.12.2012, 15:54. Показов 1116. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. У меня вопрос, как сделать так, чтобы главный поток выполнялся, после того как выполнятся другие потоки. То что я написал в цикле это жесть, на мой взгляд). Как лучше сделать?
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
             List<Thread> threads = new List<Thread>();
            foreach (var sA in smallArray)
            {
                Thread thread = new Thread(delegate() { TestThread(sA, midArray, bigarray); });
                threads3.Add(thread);
                thread.Start();
                thread.Join();
                Thread.Sleep(0);
            }
 
            while (true)
            {
                Thread th = threads.FirstOrDefault<Thread>(t => t.ThreadState == System.Threading.ThreadState.Running);
                if (th == null)
                    break;
                Thread.Sleep(0);
            }
            MessageBox.Show("OK");
 }
 private void TestThread(int sA, int[] midArray, int[] bigarray)
        {
            foreach (var mA in midArray)
            {
                foreach (var bA in bigarray)
                {
                    test++;
                }
            }
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2012, 15:54
Ответы с готовыми решениями:

Когда выполнятся .then/catch/finally после того как Promise завершится?
В учебнике написано А что здесь является текущим кодом? Когда витруальная машина начнет...

Сохранить изменение в объекте главного диалогового окна, после того, как второе модальное окно закрывается
Есть главное диалоговое окно и его класс А, производный от класса CDialog, есть еще одно модальное...

VC++6.0, как из порожденного потока прочитать переменную главного потока?
Visual C++ 6.0 SP5 Простое диалоговое окно, (MFC) созданное мастером среды VC По нажатию на...

Выполнение JS после того как включен checkbox
Всем привет. С JS не дружу, но надо. Имею скрипт из инета var textNodes = ; var textNodes_data...

4
73 / 73 / 10
Регистрация: 18.09.2012
Сообщений: 208
08.12.2012, 17:06 2
Цитата Сообщение от Kalen90 Посмотреть сообщение
C#
1
thread.Join();
Вот этого не нужно...
0
0 / 0 / 0
Регистрация: 22.05.2011
Сообщений: 9
08.12.2012, 17:20  [ТС] 3
эт да... получается что они запускаться будут по очереди... А то что я так написал через цикл это нормально?
0
73 / 73 / 10
Регистрация: 18.09.2012
Сообщений: 208
08.12.2012, 17:42 4
Нормально. Запускаться они будут в этом случае по очереди. Т.е. первый из них уже будет работать к тому моменту как будет запущен последний.

Цитата Сообщение от Kalen90 Посмотреть сообщение
C#
1
Thread.Sleep(0);
Это тоже, по-моему, не нужно писать...
1
0 / 0 / 0
Регистрация: 22.05.2011
Сообщений: 9
08.12.2012, 19:34  [ТС] 5
Цитата Сообщение от ras254 Посмотреть сообщение
Нормально. Запускаться они будут в этом случае по очереди. Т.е. первый из них уже будет работать к тому моменту как будет запущен последний.


Это тоже, по-моему, не нужно писать...
Ну я думаю что надо, потому что сразу произойдет переключение с главного потока, на мои и не будет просто так по циклу бегать. А так спасибо за помощь
0
08.12.2012, 19:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2012, 19:34
Помогаю со студенческими работами здесь

Выполнение кода после того как будут выполнены методы в других потоках
Необходимо продолжить выполнение кода только тогда когда потоки завершат свою работу. ... ...

Не получается с вторичного потока обратиться напрямую к объекту из главного потока
Добрый день. Проблема заключается в том что не могу в WPF с вторичного потока обратится на прямую к...

Многопоточность: вызвать метод главного потока из второстепенного потока
Здравствуйте. Эта тема всеми избита, знаю. Но у меня очень ограничено время, поэтому рискую и...

UiThread, как вынести процесс из главного потока?
Я - новичок в Android. Нужно в этом куске кода реализовать многопоточность. Очистить главный поток...

Как вызвать методы Unity вне главного потока?
Привет. У меня есть асинхронный сервер и клиент. И вся инфа, которая приходит от сервера к клиенту,...

Как запустить метод в главном потоке из не главного потока?
Прив. У меня такая трабла, пишу клиент, для игры на одном движке, и если от сервера пришла какая-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru