Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
5 / 5 / 1
Регистрация: 10.03.2012
Сообщений: 121

Как выполнить функции по очереди?

11.10.2013, 15:12. Показов 2775. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть шесть функций, нужно выполнить их по очереди. То есть чтобы вторая ждала пока первая выполниться до конца затем начинала сама выполняться, потом когда вторая выполнилась запускалась третья. Как такое организовать на С#?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.10.2013, 15:12
Ответы с готовыми решениями:

Выполнить все по очереди
Доброго времени суток. function jsBitLoor (name) {return { ShowHide:function(t) { var DOM =...

Как передать набор чисел по очереди в функции
Добрый день, имеется набор чисел через запятую: 1, 10, 20, 50 Имеется sql функция которая обрабатывает данные: test(@dat, число из...

Разбить скрипт на 2 части и выполнить по очереди
Как разбить скрипт на части и выполнить их по очереди, т.е. первая часть закончила работу, вторая начинает. Так как в таком варианте вторая...

7
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
11.10.2013, 15:28
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.Reflection;
 
class Program
{
    static void F1()
    {
        Console.WriteLine(MethodInfo.GetCurrentMethod().Name);
    }
 
    static void F2()
    {
        Console.WriteLine(MethodInfo.GetCurrentMethod().Name);
    }
 
    static void F3()
    {
        Console.WriteLine(MethodInfo.GetCurrentMethod().Name);
    }
 
    static void F4()
    {
        Console.WriteLine(MethodInfo.GetCurrentMethod().Name);
    }
 
    static void F5()
    {
        Console.WriteLine(MethodInfo.GetCurrentMethod().Name);
    }
 
    static void F6()
    {
        Console.WriteLine(MethodInfo.GetCurrentMethod().Name);
    }
 
    static void Main(string[] args)
    {
        Action action = new Action(F1);
        action += F2;
        action += F3;
        action += F4;
        action += F5;
        action += F6;
        action();
        Console.ReadLine();
    }
}
http://ideone.com/ENjB2R
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
11.10.2013, 17:52
Петррр, делегаты не гарантируют порядка вызова методов.
0
22 / 3 / 0
Регистрация: 21.06.2009
Сообщений: 38
11.10.2013, 17:56
просто напишите их последовательно без делегата.
0
Заблокирован
11.10.2013, 21:36
C#
1
new TaskFactory<int>().StartNew(() => 1).ContinueWith<int>(resultBeforeTask => 0);
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
14.10.2013, 08:26
Цитата Сообщение от Psilon Посмотреть сообщение
делегаты не гарантируют порядка вызова методов.
msdn:
В процессе вызова методы вызываются в том порядке, в котором они находятся в списке вызовов.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
14.10.2013, 16:40
Петррр, http://stackoverflow.com/quest... -execution
Currently, they are executed in the order they are registered. However, this is an implementation detail, and I would not rely on this behavior staying the same in future versions, since it is not required by specifications.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
14.10.2013, 17:22
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Psilon Посмотреть сообщение
However, this is an implementation detail, and I would not rely on this behavior staying the same in future versions, since it is not required by specifications.
Гражданин заблуждается.
Порядок методов в invocation list'е оговорен стандартом: синхронно по порядку от первого к последнему.
15.1 Delegate declarations
When a delegate instance is created (§15.2) from a single method, it encapsulates that method, and its invocation list contains only one entry. However, when two non-null delegate instances are combined, their invocation lists are concatenated—in the order left operand then right operand—to form a new invocation list, which contains two or more entries.
...
The following example shows the instantiation of a number of delegates, and their corresponding invocation lists:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
delegate void D(int x);
 
class C
{
   public static void M1(int i) {...}
 
   public static void M2(int i) {...}
 
}
 
class Test
{
   static void Main() {
      D cd1 = new D(C.M1);    // M1
      D cd2 = new D(C.M2);    // M2
      D cd3 = cd1 + cd2;      // M1 + M2
      D cd4 = cd3 + cd1;      // M1 + M2 + M1
      D cd5 = cd4 + cd3;      // M1 + M2 + M1 + M1 + M2
   }
 
}
When cd1 and cd2 are instantiated, they each encapsulate one method. When cd3 is instantiated, it has an invocation list of two methods, M1 and M2, in that order. cd4’s invocation list contains M1, M2, and M1, in that order. Finally, cd5’s invocation list contains M1, M2, M1, M1, and M2, in that order.
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.10.2013, 17:22
Помогаю со студенческими работами здесь

Как выполнить строку SQL из функции
Скрипт для создания функции кол-ва всех записей во всех таблицах БД CREATE function countrec1 (@tablename varchar(30) ) RETURNS...

Как выполнить гармонический синтез функции по гармоникам?
Стоит задача выполнить гармонический синтез функции f(t) по 1, 2, 4, 8, 16, 128 гармоникам. Как я понял, необходимо просто графически...

Поток.Или как выполнить две функции одновременно
Мне надо в одно время выполнить два действия. Функция которая получает координаты клика и и что рисует объект и стирает его.Можно ли это...

Как при окончании выполнения Любой функции, выполнить SLOT?
connect(this-&gt;webView, SIGNAL(loadFinished(bool)), this, SLOT(wImage())); Как при окончании выполнения ЛЮБОЙ функции, выполнить...

Как выполнить задание (написать две функции getAllDivisors и getLowestDivisor)
Надо написать две функции getAllDivisors и getLowestDivisor. Функция main должна вызывать функцию getAllDivisors, которая в свою очередь...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru