«Синхронные» функции в C #? - PullRequest
3 голосов
/ 08 ноября 2011

Я создаю пользовательскую машину состояний и для того, чтобы быть детерминистом, я должен "синхронизировать" свои переходы. Я не уверен насчет слова «синхронизировать», но я хочу, чтобы при вызове функции (через EventHandler) система была похожа на замороженную, прежде чем я смогу вызвать другую функцию (также через EventHandler).

Трудно точно объяснить это по-английски, но я думаю, вы понимаете, о чем я ...

Я думал о Threading, но ДЕЙСТВИТЕЛЬНО хотел бы избежать этого ...

Ответы [ 3 ]

1 голос
/ 08 ноября 2011

Не уверен, что это то, что вы ищете, но C # блоки итераторов по сути конечные автоматы .

1 голос
/ 08 ноября 2011

Если вы хотите эмулировать эффект "синхронизированного" ключевого слова из java, возможно, лучше всего обернуть весь код метода внутри

lock(this)
{
    // code
}
0 голосов
/ 08 ноября 2011

Синхронизация - это когда вы находитесь в многопоточной среде и вам необходимо сделать доступ к ресурсам синхронизированными потоками (по 1 за раз).Это гарантирует, что непредсказуемые результаты не достигаются, когда потоки меняют ресурсы, в то время как другие потоки пытаются получить к ним доступ.В C # вам доступно множество конструкций для обработки синхронизации.Все зависит от того, что ваши потоки пытаются выполнить.

Вот ссылка из MSDN, которая показывает несколько простых примеров: http://msdn.microsoft.com/en-us/library/ms173179.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...