簡単なメモ書き。
通常、非同期メソッド内からUI操作をしようとすると
Exceptionが発生します。
以下が回避の方法になります。
別スレッドからのUI操作
private async Task HeavyProcessingAsync()
{
if (this.InvokeRequied)
{
//別スレッドによるUI操作
this.Invoke((MethodInvoker)(() => TextBox.Text = "hoge"));
}
else
{
//UIスレッドからのUI操作
TextBox.Text = "hoge";
}
}
まずInvokeする必要があるかを判定して、
必要ならばInvokeメソッドとMethodInvokerデリゲートを利用します。