ASP.NET MVC5 - async / await

0

Hej, mam pewien problem. Posiadam pewną metodę przykładowo :

public async Task DoSmth()
{

UserDto user = await webApi.GetUser(userId); //Wywolanie metody ktora bedzie strzelala do API i zwracala pewnego uzytkownika

//W tym miejscu modyfikuje dane usera (pobieram, przeksztalcam)
}

Problem w tym, nie wiem czy jest to reguła czy nie, ale na 'szybszych' komputera działa wszystko okej.
Natomiast na wolniejszych zaczyna się wykonywać linia w której pobieram dane "UserDto user" jeśli jeszcze nie otrzymałem wyniki z API - przez co często otrzymuję, wyjątki związane, tym, że próbuję uzyskać dane z obiektu null. Niestety, ale metody wywołującej metode w api nie mogę przekształcić by działała synchronicznie. Potrzebuję jakiś pomysł, by zrobić zabezpieczenie, by kod z modyfikacją obiektu było dopiero wykonywany jeśli otrzymałem dane z API

2

W jakim sense te komputery są szybsze/wolniejsze? Runtime .NET obsługuje Taski nawet na słabszych prockach. Jeśli to .NET Framework, a nie Core, błąd może leżeć w metodzie webApi.GetUser. Możesz ją pokazać?

0

Wywołanie metody wygląda następująco :

public async Task<UserDto> GetUser(int userId)
       {
             return await GetDataAsync<UserDto>($"{routePrefix}/getUser/{userId}");
       }

Odnośnie tego, że wolniej z kumplem pracujemy nad wspólnym projektem. I cały problem można odtworzyć lokalnie (nie trzeba wrzucać na serwer - przepraszam, zapomniałem o tym na początku napisać :( ). Komputer kolegi ma gorszy procesor i zauważyłem, że u niego pojawia się błąd / problem o którym napisałem w treści posta. Ja mam znacznie lepszy procesor i u mnie wszystko działa prawidłowo. Niestety, ciężko mi powiedzieć czy to wina 'procesora' ale już ostatecznie wszystkie warianty wykluczyliśmy - chociaż, powiem szczerze, nigdy wcześniej problemów takiej rangi nie posiadałem :(

2
Undo napisał(a):

Niestety, ciężko mi powiedzieć czy to wina 'procesora' ale już ostatecznie wszystkie warianty wykluczyliśmy

To niemal na pewno bzdury. Pokaż cały kod, wyjątek, a jak tego będzie mało, to zrzut pamięci.

1 użytkowników online, w tym zalogowanych: 0, gości: 1