プロパティに値を設定するアクションを定義したい(ワーカースレッドによって計算された)。そのアクションは、別のスレッド コンテキスト (UI スレッド) で呼び出す必要があります。
問題を単純化するために、つまり、このコードが機能しない理由と、意図したとおりに機能させるにはどうすればよいかという問題に要約します。
public struct Person
{
public string Name;
}
Person person;
Action<Person> action;
public void Update()
{
person = new Person();
new Thread(() =>
{
action = new Action<Person>(c => c.Name = "Me");
}).Start();
Thread.Sleep(1000);
action(person);
Debug.WriteLine(person.Name ?? "null");
}
「Sami」ではなく「null」と表示されるのはなぜですか?