イベント ハンドラーが戻った後、変数 uiContext は範囲外になりますか? このコードを機能させるために、コンパイラは舞台裏で何をしますか。
private void findButton_Click(object sender, RoutedEventArgs e)
{
SynchronizationContext uiContext = SynchronizationContext.Current;
Task.Factory.StartNew(() =>
{
string pictures =
Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
var folder = new DirectoryInfo(pictures);
FileInfo[] allFiles =
folder.GetFiles("*.jpg", SearchOption.AllDirectories);
FileInfo largest =
allFiles.OrderByDescending(f => f.Length).FirstOrDefault();
uiContext.Post(unusedArg =>
{
outputTextBox.Text = string.Format("Largest file ({0}MB) is {1}",
largest.Length / (1024 * 1024), largest.FullName);
},
null);
});
}