1

次のような非同期呼び出しを使用して、インターネットから画像をダウンロードしようとしています。

    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() で

このエラーを取り除くために他に何ができますか?

4

1 に答える 1