2012-04-14 10 views
5

Uruchamiam program winrt z wieloma zadaniami. W środku rzędu, pojawia się następujący wyjątek:Czy liczba zadań jest ograniczona?

Not enough quota is available to process this command 

Ślad stosu jest

at Windows.UI.Core.CoreDispatcher.InvokeAsync(CoreDispatcherPriority priority, InvokedHandler freeThreadedCallback, Object sender, Object context) 
    at System.Threading.WinRTSynchronizationContext.Post(SendOrPostCallback d, Object state) 
    at System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.InvokeOrPostAction(Object state) 
    at System.Threading.Tasks.AwaitTaskContinuation.RunInline(ContextCallback callback, Object state) 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Threading.Tasks.AwaitTaskContinuation.<ThrowAsyncIfNecessary>b__1(Object s) 
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state) 
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 
    at System.Threading.ThreadPoolWorkQueue.Dispatch() 
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() 

Potem wywala.

Czy to jest problem specyficzny dla WintRT?

Czy istnieje obejście?

+0

Udostępnianie kodu? Wierzę, że uruchamiając aplikację w trybie debugowania można zobaczyć, gdzie został zgłoszony wyjątek. – sll

+0

Pamiętaj, że zadania .Net działają w kontekście synchronizacji. W twoim przypadku kontekst synchronizacji jest wątkiem UI (widzisz to, ponieważ wywołuje CoreDispatcher.InvokeAsync). Oznacza to, że wszystkie twoje zadania będą uruchamiane szeregowo w wątku interfejsu użytkownika. Czy to jest zamierzone? –

Odpowiedz

2

Zgodnie z the MSDN documentation for that error message, poprawką tego błędu jest "zamknij niektóre aplikacje" lub "zwiększ rozmiar pliku stronicowania".

Biorąc to pod uwagę, możesz zacząć od wyszukania w Menedżerze zadań i sprawdzenia, czy aplikacja używa całkowicie nieuzasadnionej ilości pamięci (lub innego procesu). Jeśli twój proces ma wyciek pamięci, może to prowadzić do tego problemu.