Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

345
Views
Diferencia entre Async/Await y Dispatcher

Estoy trabajando en una aplicación WPF y me encuentro con problemas de congelación, ahora he aprendido que es una aplicación de un solo subproceso, pero me confundo con las terminologías.

Yo términos simples

Diferencia entre Async/Await y Dispatcher

Quiero explicar mi punto de vista para que quede claro en ambos extremos mi malentendido, hasta ahora he aprendido que la mayoría de las aplicaciones son STA (en C #), y tienes que usar programación asíncrona, lo que muy bien puede implicar

  • Un solo subproceso que cambia el trabajo en el subproceso de la interfaz de usuario al priorizar el trabajo que ya se ha completado y luego usar un subproceso de trabajo para notificar al subproceso de la interfaz de usuario que el trabajo pesado se ha realizado.
  • También es una aplicación verdaderamente de múltiples subprocesos en la que se debe crear un subproceso para completar la tarea en él.

Creo que, en su mayor parte, mi concepto es al menos sólido, por decir lo menos, donde me falta aplicar estas habilidades.

por ejemplo, pensé que anteriormente para habilitar la programación asíncrona teníamos que usar delegados para ser llamados desde el método principal, lo que evolucionó a un despachador de delegados que evolucionó aún más a asíncrono y a la espera de cortar 'CUALQUIER USO ÚNICO DE' despachador (incluso ese literal palabra clave)

así que todo lo que usé fue la palabra "asincrónica" en la declaración de la función, seguida de la "tarea", luego esperé un proceso intenso al agregar una palabra "esperar" antes de que finalmente encapsulara ese trabajo intenso con Task.Run (() = > Trabajo Intenso())

pero ahora estoy confundido de que tiene que usar la palabra Dispatcher porque solo el dispatcher puede acceder a los elementos de la interfaz de usuario y usar Dispatcher.Invoke (IntenseWork()), luego está Dispatcher.Begininvoke y Dispatcher.AsyncIncoke

DUDA:

en cuyo caso, async/await y task.run no serán suficientes y la biblioteca paralela de tareas incluso se usará aquí


Hice preguntas e investigué y estoy atascado en estas conclusiones, estas son mis preguntas anteriores

Navegación asíncrona

Usando async y await para lograr la asincronía en el problema de ejemplo

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Estás preguntando sobre dos tecnologías diferentes de diferentes períodos.

El problema común es que la interfaz de usuario tiene un solo subproceso y solo se debe acceder desde el subproceso principal (UI).

Puede y debe descargar el trabajo que no es de interfaz de usuario a otro subproceso tanto como sea posible. Pero por lo general hay resultados que deben mostrarse después.

El enfoque antiguo (pero aún válido) es entregar un delegado a Dispatcher.Invoke() o Control.Invoke() en WinForms.

El enfoque más nuevo, aplicable a Task.Run() y todos los métodos de E/S de DoSomethingAsync() es usar await:

 // use async void only for eventhandlers async void LoadButton_Click(object s, RouteEventArgs e) { // get input from controls here var results = await Task.Run(() => HeavyWorkWithoutUI()); // update UI with results here }

El soporte de WPPF y WinForms es que sus métodos de nivel superior se ejecutarán en el subproceso de la interfaz de usuario antes y después de una espera. El método pesado se ejecutará en otro subproceso. Durante la espera, su interfaz de usuario permanece receptiva.

Entonces, await es un poco más conveniente, ya que le permite escribir un código más legible con menos esfuerzo.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!