Следующий вопрос касается движка игры единства, но он может относиться к любой программе, пытающейся отправить данные в основной поток, такой как поток пользовательского интерфейса.Interthread communication
Я обрабатываю некоторые данные по отдельному потоку (данные позиции асинхронно считываются из сокета). Однако мне нужно воздействовать на эти данные в основном потоке (преобразование игрового объекта можно получить только из основного потока). Подход, который я имею в виду, - создать потокобезопасную очередь и следовать шаблону производителя-потребителя. Поток будет помещать в очередь данные позиции, а основной поток будет декомпрессировать данные и действовать на них. * Примечание. В Unity у меня нет доступа к пространству имен System.Windows.Threading, поэтому я не могу использовать Dispatcher. Кроме того, он требует .Net 3.5, поэтому я не могу использовать пространство имен Collections.Concurrent.
Есть ли лучший подход?
Если нет, то как лучше всего сообщить основной поток, когда данные поставлены в очередь? Это кажется неэффективным для опроса, но я не могу думать ни о чем его.
Заранее спасибо.
Тег единства предназначен для Microsoft Unity. Пожалуйста, не злоупотребляйте им. –