Отправка изображения из WPF в Web API, ошибка потока - PullRequest
0 голосов
/ 09 января 2019

Итак, я хочу отправить изображение из моего приложения WPF на контроллер Web API. Когда я получаю изображение как BitmapImage и пытаюсь отправить его, я получаю сообщение об ошибке «вызывающий поток не может получить доступ к этому объекту, потому что другой поток владеет им». Я не вижу, как я изменяю интерфейс и почему я получаю ошибку. Вот код:

Код WPF:

private void BtnSendImage_Click(object sender, RoutedEventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.InitialDirectory = Environment.SpecialFolder.MyDocuments.ToString();
        BitmapImage slika = null;

        if (ofd.ShowDialog() == true)
        {
            odabranaSlika = ofd.FileName;
            Uri adresa = new Uri(odabranaSlika, UriKind.Absolute);
            slika = new BitmapImage(adresa);
            ItemDAL idal = new ItemDAL();

            if (idal.SendImage(slika))
            {
                MessageBox.Show("Yay!");
            }
            else
            {
                MessageBox.Show("Awwww");
            }
        }
    }

Метод SendImage из класса ItemDAL (код останавливается на части postResult.Wait ()):

public bool SendImage(BitmapImage bmp)
    {
        using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri("http://localhost:52407/");
            var postResult = client.PostAsJsonAsync<BitmapImage>("api/values/postimage", bmp);
            postResult.Wait();

            var result = postResult.Result;
            if (result.IsSuccessStatusCode)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }

Что я делаю не так? Я знаю, что я не собираюсь изменять пользовательский интерфейс, если только он не из основного потока, бот, как это влияет на пользовательский интерфейс?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...