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?
Udostępnianie kodu? Wierzę, że uruchamiając aplikację w trybie debugowania można zobaczyć, gdzie został zgłoszony wyjątek. – sll
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? –