Я начинаю изучать некоторое единство, и у меня есть быстрый вопрос в отношении многопоточности.Единство Обновление переменной из другой темы
У меня есть класс, который содержит экземпляр класса datamodel. Основной функцией класса является асинхронное извлечение удаленного ресурса и обновление класса datamodel. Затем в функции обновления класс datamodel считывается и записывается в некоторый текст в игровом объекте.
В любом случае, я беспокоюсь, что это может вызвать некоторые проблемы, связанные с многопоточным чтением, так как обновление async класса может выполняться одновременно с функцией обновления, вызывающей условие гонки. Нужно ли мне переносить доступ к классу в мьютексе?
class Data {
public int Number { get; set; }
public string Name { get; set; }
}
class Network : MonoBehaviour {
private Data d;
public void Start() {
// setting up handler to async fetch data and call provided callback
Networking.GetData(s => ParsePayload(s));
}
private void ParsePayload(string payload) {
d = JsonConvert.DeserializeObject<Data>(payload);
}
public void Update() {
var label = GameObject.Find("textObject").GetComponent<Text>();
label.Text = d.Name;
}
}
Так я прав в этом или единство справляется с этим сам по себе?
thx для любых советов!
Если вы не разместили свой код, любой ответ, который вы получите, скорее всего, не пригодится вам. по крайней мере, попробуйте показать, что вы делаете – Programmer
@Programmer обновил мой вопрос ... –
Где вы обновляете класс и где находится код Thread. Это отсутствует. Если у вас есть оба, кто-то здесь может помочь вам ответить на этот вопрос. – Programmer