Matrix_ Opublikowano 17 Stycznia 2016 Udostępnij Opublikowano 17 Stycznia 2016 Cześć, mam takie pytanie, jak zrobić wykonywanie jednego voida co np. sekunde, ale program nie może być zamrożony. Podczas wykonywania tego voida, potrzebuje mieć możliwość zmiany liczb itd. w formach Visual C# Potrzebuje jakiś Timer który nie zamraża. Czyli GML Thread.Sleep(1000); odpada... Mój void: GML private void ActualizeScene() { for (int i = 0; i < 5; i++) { myport.WriteLine(color_Rr.ToString() + ";" + color_Gg.ToString() + ";" + color_Bb.ToString()); Thread.Sleep(1000); } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 17 Stycznia 2016 Udostępnij Opublikowano 17 Stycznia 2016 Jest to możliwe za pomocą tasków oraz bezpośrednio wątków. odpalasz tę funkcję w osobnym tasku/wątku, jednocześnie zakładając locka na czas odpalania tej funkcji, oraz na czas dostępu do tablicy z normalnego wątku (żebyś nie zapisywał czegoś przypadkiem w dwóch wątkach na raz). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 17 Stycznia 2016 Autor Udostępnij Opublikowano 17 Stycznia 2016 Jest to możliwe za pomocą tasków oraz bezpośrednio wątków. odpalasz tę funkcję w osobnym tasku/wątku, jednocześnie zakładając locka na czas odpalania tej funkcji, oraz na czas dostępu do tablicy z normalnego wątku (żebyś nie zapisywał czegoś przypadkiem w dwóch wątkach na raz). To jest takie coś: System.Threading.Tasks ? I tam jest chyba: GML Delay( INT ) albo yield(int) I nie powinno to mi zamrażać programu, żeby można było klikać w przyciski, wpisywać coś w textboxach i zmieniać kolory? Czy to będzie wtedy t.zw. asynchroniczny program? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 21 Stycznia 2016 Udostępnij Opublikowano 21 Stycznia 2016 Tak, będzie to program asynchroniczny, czyli nie wiesz co będzie się działo w twoim głównym programie kiedy będzie się wykonywał kod wątku, w związku z czym musisz dbać o to by np twój główny kod nie pisał do tych samych zmienny co wątek w tym samym czasie. Można też zrobić by mimo używania wątków wykonanie programu tak naprawdę nie było asynchroniczne, ale wtedy trzeba się trochę pobawić. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się