Я пишу плагин для игры под названием Rust с использованием рамки моддинга под названием Oxide. Мне интересно, нужно ли мне беспокоиться о синхронизации в моем плагине. Все сценарии в единстве (C# или иначе) выполнены в одном потоке?Безопасность потоков в сценариях C#
ответ
Да, все они исполняются на главной теме, на самом деле единство действительно не нравится, когда вы пытаетесь делать что-то с основной нитью. Любые специальные вызовы Unity3D, которые вы делаете (что-либо в любом из пространств имен Unity), должны выполняться в основном потоке, иначе вы получите потенциально очень неопределенные ошибки, а когда ошибки происходят за пределами основного потока, единство не сообщит об этом и не будет предоставлять трассировка стека.
Они способствуют тому, что большинство людей сталкиваются с mutlithreading с Unity, чтобы создать объект MonoBehaviour, который запускает обработку, которая не включает единство непосредственно в другом потоке, а затем сохраняет ее в объекте MonoBehaviour, когда это делается. Затем объект MonoBehaviour может проверять каждое обновление, чтобы убедиться, что нужные ему данные готовы к тому, чтобы сделать единичные конкретные вызовы, а затем сделать это, если они готовы.
Удивительно, вот что я надеялся. У меня нет желания делать многопоточность, я просто привык работать в многопоточных серверных средах и изначально предполагал, что мне придется беспокоиться о синхронизации. Благодаря! –
- 1. Безопасность потоков C++ std Контейнеры
- 2. Безопасность потоков :: new в C++ 11
- 3. Безопасность потоков экземпляра C# singleton в ApplicationState
- 4. Безопасность потоков в общих экземплярах (C#)
- 5. C++: безопасность потоков в библиотеке сигналов/слотов
- 6. Безопасность потоков в Javascript?
- 7. Безопасность потоков в wxpython
- 8. Декларативная безопасность потоков в .NET
- 9. C++ shared_ptr как обеспечить безопасность потоков?
- 10. Позиции C write() и безопасность потоков
- 11. C чтение и безопасность потоков (linux)
- 12. C++ 11 Безопасность потоков с переменными стека
- 13. C++ 11 Безопасность потоков генераторов случайных чисел
- 14. C# и безопасность потоков для bool
- 15. C++ 11 Безопасность потоков атомных контейнеров
- 16. CoRegisterClassObject нарушает безопасность потоков
- 17. Безопасность потоков google/dense_hash_map
- 18. Безопасность потоков log4net
- 19. DatagridView VB.Net, безопасность потоков
- 20. Безопасность Java и потоков
- 21. VirtualQuery и безопасность потоков
- 22. DefaultTraceListener и безопасность потоков
- 23. Безопасность потоков RijndaelManaged, ICryptoTransform.TransformFinalBlock?
- 24. Безопасность SharePoint и потоков
- 25. Безопасность потоков PrintStream в Java
- 26. Безопасность потоков в классе String
- 27. безопасность потоков в std :: map
- 28. Безопасность потоков StringBuilder в Parallel.For
- 29. Безопасность потоков в ASP.Net MVC
- 30. Безопасность потоков в Java-классе
http://answers.unity3d.com/questions/180243/threading-in-unity.html. По сути Unity API не может быть потокобезопасным, но нет ничего, что помешает вам создавать собственные потоки для ваших собственных целей. – MickyD