私はいくつかの統一を学び始めています。私はマルチスレッドに関して簡単な質問があります。異なるスレッドから変数を更新しています
私は、データモデルクラスのインスタンスを含むクラスを持っています。このクラスの主な機能は、リモートリソースを非同期的にフェッチし、datamodelクラスを更新することです。次に、更新機能では、データモデルクラスが読み出され、ゲームオブジェクト内のテキストに書き込まれます。
とにかく、クラスの非同期更新が競合状態を引き起こす更新関数と同時に実行できるため、マルチスレッドに関するいくつかの問題が発生する可能性があると心配しています。ミューテックスのクラスへのアクセスをラップする必要がありますか?
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が私の質問を更新しました... –
ここで、クラスを更新していますか?スレッドコードはどこですか?これは欠けている。もしあなたがこれらの両方を持っていれば、ここに誰かがあなたにこれに答えるのを助けることができます。 – Programmer