Używam programatora do okresowego uruchamiania zdarzenia w odpowiednio długim interwale (2 minuty). To działa dobrze. Jednak chciałbym, aby zdarzenie zostało natychmiast uruchomione po utworzeniu stopera (zamiast czekać 2 minuty).Natychmiastowe uruchomienie ognia systemu .net System.Timers.Timer
Pamiętaj, że nie mogę tego zrobić, po prostu wywołując metodę, ponieważ uruchomienie i zablokowanie aplikacji zajmie trochę czasu. Potrzebuję czasomierza do wystrzelenia jak zwykle i uruchomienia zdarzenia w osobnym wątku.
Najlepszym sposobem mogę myśleć robi to w tej chwili jest instacji programator i utworzenie TriggerManually
metodę, która zrobi coś takiego:
- Włącz automatyczne resetowanie się
- Ustaw interwał do 1ms
- Włącz timer
To wywoła zdarzenie, jaki upłynął od razu, a może umieścić wszystkie ustawienia z powrotem do normalności.
Wydaje się jednak trochę rondo. Czy istnieje lepszy sposób na zrobienie tego?
@Mitch - tylko dowodzi, że jesteś człowiekiem pomimo swojego szalonego rep :) – Gishu
Tak, to działa. System.Threading.Timer jest nieco trudniejszy w użyciu, ale robi to, czego potrzebuję. Dzięki! – Nathan
Należy pamiętać, że nieobsługiwany wyjątek w wywołaniu zwrotnym 'System.Threading.Timer' [spowoduje awarię aplikacji] (http://stackoverflow.com/questions/1718598/throwing-exceptions-in-callback-method-for-timers). –