Cross-thread operation not valid

Odpowiedz Nowy wątek
2008-02-29 10:41
0

Cześć

W sprawie wyjątku InvalidOperationException i komunikatu:

Cross-thread operation not valid: Control '' accessed from a thread other than the thread it was created on

W drodze wprowadzenie:

  • wiem kiedy generowany jest ten wyjątek
  • wiem, że należy użyć Invoke, żeby nie był generowany

To wszystko można przeczytać w dokumentacji. Problem polegana tym, że w moim przypadku
wyjątek ten jest genrowany w takim miejscu w którym nie powinien. Sprawdziłem w debugu i kontrolka
jest tworzona w tym samym wątku, w którym następuje powodujące błąd odwołanie do niej.

Dodatkowo błąd ten pojawia się w dwóch różnych miejscach w zależności od sposobu uruchomienia apliakacji. Jeśt aplikacja zostanie uruchomiona z dwukliku błąd powstanie przy odwołaniu do jednej kontrolki. Przy uruchomieniu aplikacji z VisualStudio błąd pojawi się przy odwołaniu do innej kontrolki.

W każdym razie sprawa jest dla mnie dziwna. Jeśli ktoś spotkał się już z czymś takim
to proszę o uwagi.


Pozostało 580 znaków

2008-03-03 16:02
0

Pamietaj, ze nieobsluzone exceptiony powstale na innym watku w .net 2.0 forwardowane sa do watku glownego. Przez to mozna pomylic sie co faktycznie na ktorym watku sie stalo. Sam kiedys stracilem na szukaniu bledu, ktory tak naprawde lezal gdzie indziej a przez forwardniecie errora ciagle grzebalem nie tam gdzie trzeba.

Najprosciej mozesz sprawdzic atrybut InvokeRequired czy dana operacja przypadkiem nie wymaga wykonania na watku GUI. Jesli tak, to odpowiednio Invokujesz.


Senior Full Stack Developer .NET & Angular

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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