Skocz do zawartości
azyl

C# problem z procesami

Rekomendowane odpowiedzi

Witam

 

Pisze program w VS C#. DO tej pory wszystko dzialalo, dzisiaj przestalo ...

Kiedy proboje odpalic program wyskakuje blad "unable to copy file "obj\sciezka" to "bin\sciezka". The process cannot access the file "bin\sciezka" because it is being used by another process.

Kiedy zapisze istniejacy juz program ( konkretnie zmienie mu nazwe na jakas inna )to blad nie wyskakuje przy pierwszym uruchomieniu i tworzy w folderze taki sam plik jak ten w ktorym przed chwila zmienilem nazwe, przy nastepnym odpaleniu juz wyskakuje.

Do tej pory nigdy sie tak nie dzialo, nie wiem o jaki proces chodzi, co innego moze uzywac tego pliku ?

 

Dziwi mnie to ze moge normalnie zapisac program a blad wyskakuje dopiero przy debagowaniu - ma ktos jakis pomysl ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Sciagnij sobie Process Explorer, uruchom, wcisnij Ctrl-F i wpisz (mozliwie unikalny) kawalek nazwy pliku, ktory jest niby zajety. Powinno Ci pokazac jaki proces go uzywa.

Ze swojego doswiadczenia moge tylko powiedziec, ze VS czasami tak po prostu ma, ze sam zablokuje sobie plik wyjsciowy projektu i basta. Restart VS pomaga (nie tylko na ten problem zreszta).

Jesli tym procesem okaze sie cos innego niz VS no to juz trzeba kombinowac w zaleznosci od tego co to, moze aplikacja po prostu sie nie zakonczyla poprawnie z jakiegos powodu (zdarza sie przy zabawach z watkami na przyklad), ale najpierw sprawdz co Ci go blokuje, zeby moc wyciagnac dalsze wnioski.

Edytowane przez FiDO

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dalej bawie sie watkami, wyskoczyl inny problem

 

public static TcpListener serwer;Thread serw = new Thread(serwer.Start);

wypluwa błąd

 

 

delegate to an instance method cannot have null 'this'

blad wskazuje na linijke "Thread serw=net Thread(serwer.start));

 

szczerze mówiąc nie wiem co ten błąd oznacza, jeśli trzeba to wrzuce cały kod programu

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Klik!

 

Hint: zatrzymaj sie w debugerze na linijce, ktora powoduje problem i najedz myszka na zmienna serwer

Edytowane przez FiDO

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To dziwne, bo ja wsrod pierwszych 3 wynikow znalazlem odpowiedz. A sam komunikat wbrew pozorom mowi o co chodzi, tylko w troche dziwny sposob. To taki troche compile-time NullReferenceException :)

 

Inna sprawa, ze zle kombinujesz z tym TcpListenerem... Tak sie watkow nie robi. Zerknij tutaj: [C#] Example of Multi-threaded TCPListener? - Neowin Forums. To ma zdecydowanie wiecej sensu.

Edytowane przez FiDO

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To dziwne, bo ja wsrod pierwszych 3 wynikow znalazlem odpowiedz. A sam komunikat wbrew pozorom mowi o co chodzi, tylko w troche dziwny sposob. To taki troche compile-time NullReferenceException :)

 

Inna sprawa, ze zle kombinujesz z tym TcpListenerem... Tak sie watkow nie robi. Zerknij tutaj: [C#] Example of Multi-threaded TCPListener? - Neowin Forums. To ma zdecydowanie wiecej sensu.

 

 

Odpowiedzi, ktore padly w tych wynikach z googli nie podzialaly w moim wypadku. Zgadzam sie, ze sposob w jaki tworze watek jest dziwny ale wynika to z tego, ze sposob podany w linku ustala ip i port na stale, ja chce miec mozliwosc dowolnego ustalenia tych parametrow. Kombinuje z tworzeniem globalnych zmiennych i dlatego watek tworzony jest w taki sposob ( watek tez jest globalny i odpalany przez konkretna funkcje )

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Troche nad tym posiedzialem, i mala modyfikacja sposobu podanego wyzej zadzialala, teraz juz procesy dzialaja normalnie, dzieki wielkie.

 

Mam pytanie : mam w programie kontrolke listbox1, z poziomu buttona moge dodac do niej wpis listbox1.Items.ADD i wpis sie dodaje, nie moge jednak tego zrobic z poziomu funkcji w programie.

 

Czy wie ktos dlaczego tak sie dzieje ? Co trzeba zrobic aby z poziomu funkcji byl dostep do listbox1 ( do listbox dostep jest ale jak wiadomo to co innego ) ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...