次のような非同期呼び出しを使用して、インターネットから画像をダウンロードしようとしています。
private void DoGetAlbumart(object sender, DoWorkEventArgs e)
{
string req = (string)e.Argument;
WebClient wc = new WebClient();
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(ReadWebRequestCallback);
wc.OpenReadAsync(new Uri(req));
}
void ReadWebRequestCallback( object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null && !e.Cancelled)
{
try
{
BitmapImage image = new BitmapImage();
image.SetSource(e.Result);
SecondTile.Source = image;
}
catch (Exception ex)
{
}
}
else
{
}
}
BitmapImage image = new BitmapImage() でブレークポイントにヒットすると、次の例外が発生したようです。
ex = {System.UnauthorizedAccessException: クロススレッド アクセスが無効です。MS.Internal.XcpImports.CheckThread() で System.Windows.DependencyObject..ctor(UInt32 nativeTypeIndex, IntPtr constructDO) で System.Windows.Media.Imaging.BitmapImage..ctor() で
このエラーを取り除くために他に何ができますか?