. Net Dispatcher, for.NET núcleo?

Existe algo como {[[0]} para o núcleo. net?

Eu preciso criar um thread no núcleo. NET, e ser capaz de enviar ações para serem invocadas no thread. Além disso, eu gostaria de ser capaz de usar um TaskScheduler que pode ser usado para async/await coisas.

Isto existe algures?

Author: Paul Knopf, 2017-01-19

1 answers

Não está incorporada, mas a minha ... AsyncContext e AsyncContextThread os tipos estão disponíveis numa biblioteca que se adaptaria às suas necessidades.

AsyncContext assume o tópico actual:

AsyncContext.Run(async () =>
{
  ... // any awaits in here resume on the same thread.
});
// `Run` blocks until all async work is done.

AsyncContextThread é um fio separado com o seu próprio AsyncContext:

using (var thread = new AsyncContextThread())
{
  // Queue work to the thread.
  thread.Factory.Run(async () =>
  {
    ... // any awaits in here resume on the same thread.
  });
  await thread.JoinAsync(); // or `thread.Join();`
}

AsyncContext fornece um SynchronizationContext, bem como um TaskScheduler/TaskFactory.

 1
Author: Stephen Cleary, 2017-01-20 15:24:31