Chciałbym móc utworzyć zadanie bez uruchamiania go, podobne do uruchamiania var a = new Task(); a.Start();
, ale z niestandardową fabryką. Fabryki zapewniają StartNew()
, ale nie mogę znaleźć metody oddzielenia tych dwóch działań. czy to możliwe?Tworzenie, ale nie uruchamianie zadania w fabryce zadań niestandardowych?
Odpowiedz
A TaskFactory
to w zasadzie dwa zestawy domyślnych opcji (tworzenie i kontynuacja), domyślny token anulowania i harmonogram zadań.
Możesz określić token anulowania i opcje tworzenia, gdy dopiero tworzysz nowe zadanie - i uruchamiać je na dowolnym harmonogramie, który chcesz. A więc:
Task task = new Task(action,
factory.CancellationToken,
factory.CreationOptions);
...
task.Start(factory.Scheduler);
powinien wykonać pracę inną niż opcje kontynuacji. Opcje kontynuacji mają znaczenie tylko wtedy, gdy dodajesz kontynuację, którą możesz określić bezpośrednio. Czy jest coś, co nie jest objęte tym?
(Należy pamiętać, że Asynchroniczny wzorzec oparty na zadaniach zasadniczo dotyczy zadań "gorących", które są uruchamiane do czasu ich wyświetlenia, dlatego należy unikać zbyt szerokiego prezentowania niezamkniętych zadań.)
Powoduje to, że utworzenie fabryki jest zbędne, ponieważ modyfikujemy zachowanie zadania ręcznie w czasie tworzenia i kontynuacji zadania. Miałem nadzieję, że istnieje bardziej elegancka metoda, którą przeoczyłem, ale jeśli nie, to dobrze, że to też wiem =) – Jake
@Jake: Cóż, możesz chcieć zachować fabrykę w taki sposób, aby zamknąć te opcje - lub natychmiast rozpocząć inne zadania. Chodzi mi o to, że tak naprawdę nie robi wiele, czego nie można zrobić ręcznie. –
- 1. Grunt: tworzenie niestandardowych zadań, jak to zrobić
- 2. Uruchamianie zadania po wszystkie zadania zostały zakończone
- 3. uruchamianie zadań w zaplanowanym czasie java, apache
- 4. Tworzenie zaplanowanych zadań
- 5. Wykonaj zadania budowania androida w zadaniach niestandardowych
- 6. Automatyczne ponowne uruchamianie długich zadań w Julia
- 7. Uruchamianie zadania Cron
- 8. Uruchamianie zadania maven zainstalować
- 9. Automatyczne uruchamianie zadań dławiących za pośrednictwem npm
- 10. Tworzenie niestandardowych operatorów w RxJava2?
- 11. Tworzenie niestandardowych formularzy w WPF?
- 12. Rx i zadania - anulować uruchamianie zadania po utworzeniu nowego zadania?
- 13. Dodawanie niestandardowych atrybutów do zadania?
- 14. Uruchamianie kolejnych zadań w kilku środowiskach przy użyciu Jenkinsa
- 15. Tworzenie niestandardowych legendy w ggplot2
- 16. Tworzenie dwóch przycisków niestandardowych
- 17. Tworzenie niestandardowych tagów
- 18. Uruchamianie 2 zadań asynchronicznych z pomiarem
- 19. Uruchamianie zadania Laravel w określonym czasie
- 20. Tworzenie zadania z pulsem
- 21. RxJavaCallAdapterFactory nie można przekształcić w Fabryce
- 22. Uruchamianie niestandardowego kodu za pomocą zadań w konfiguracji Inno
- 23. Nie widzę zadań w aptanie
- 24. Uruchamianie zadań w foreach Wykorzystanie pętli Wartość ostatniej pozycji
- 25. Uruchamianie niektórych zadań w programie Notes IPython w trybie odłączonym
- 26. Tworzenie zadań za pomocą pętli [gulp]
- 27. Tworzenie "ładnych" niestandardowych widgetów Qt
- 28. PID istnieje w netstat, ale nie istnieje w menedżerze zadań.
- 29. Tworzenie niestandardowych menu dialogowe popup
- 30. Najlepsza praktyka LongRunning Tworzenie zadań
Artykuł może Cię zainteresować: ["Task.Factory.StartNew" kontra "nowe zadanie (...). Start"] (http://blogs.msdn.com/b/pfxteam/archive/2010/06/ 13/10024153.aspx). Autor poczynił kilka interesujących uwag o tym, dlaczego nie chcesz opóźniać rozpoczęcia zadań. –