Mirror, mirror, is there someone who can make my day today?
Алекс Лочер
дневник заведен 02-06-2002
постоянные читатели [303]
закладки:
цитатник:
дневник:
местожительство:
Москва, Россия
интересы [76]
общение, программирование, фотография, дайвинг, горы, политика, путешествия, люди, история, сны, парашютный спорт, горные лыжи, Мир как текст
антиресы [14]
лицемерие, расизм, предательство
[5] 03-08-2014 11:50
На гребне

[Print]
РасчЮдесная
04-07-2007 10:30
Интересно, что было со мной в ночь с 12е на 13го июня, если утром 13го (судя по логам) я написал вот такое:

public void ExecuteCommand(AbstractMessage msg)
{
MessageDelegate dlgt = new MessageDelegate(ExecuteCommand);
dlgt.BeginInvoke(msg, null, null);
}


Однако, новый тип бесконечной рекурсии: не приводит к переполнению стека

Вообще, что-то слишком много ляпов в коде стало последнее время.
Не доволен собой.
Комментарии:
Криптограф-идеалист
В отпуск, Лочер! Срочно!
The Wave
Да-да. Два дня осталось - и на природу.
04-07-2007 11:42
Опытный ворчун
я в С-ях понимаю плохо, но этот самый... который по New создается - он создается не в стеке ?
The Wave
JimmyM это не С, это C#.
Идея в том, что MessageDelegate - это делегат - ну, упрощенно говоря, что-то вроде указателя на функцию. Т.е. функция создает указатель сама на себя - и вызывает его. Но вызывает в другом потоке (thread), при этом вызывает асинхронно - т.е. вызвавший поток не ждет окончания "вложенного" вызова, а продолжает выполнение (на деле не продолжает, а заканчивается, так как кроме выложенного вызоыва в нем больше ничего и нет). Соответсвенно, глубина используемого стека практически не возрастает.

Вообщем, глубокий бред.
04-07-2007 11:56
Опытный ворчун
Алекс Лочер хм... да, это сильно

Ваш комментарий:
Камрад:
Гость []
Комментарий:
[смайлики сайта]
Дополнительно:
Автоматическое распознавание URL
Не преобразовывать смайлики
Cкрыть комментарий
Закрыть