Cómo escribir una "función asincrónica"
Casi todas las funciones que normalmente escribimos en programación llaman a funciones de forma sincrónica, entonces, ¿cómo escribimos una función que se ejecuta de forma asincrónica? ! ¡Creo que esta pregunta la pueden hacer programadores que prefieren especializarse en investigación o personas con un espíritu de investigación especial! Muchos de nosotros nos hemos acostumbrado a algunos mecanismos asincrónicos proporcionados por el sistema Windows. Usando estos mecanismos asincrónicos, podemos implementar rápidamente algunas operaciones asincrónicas e incluso implementar fácilmente una función de ejecución asincrónica, pero hemos estudiado la implementación de una "función asincrónica"; esencia de? ! En un sistema de un solo subproceso, todas las instrucciones se ejecutan secuencialmente, lo que implica que si una función A llama a la función B, A debe esperar hasta que se ejecute B antes de continuar ejecutando el código restante en A. En subprocesos múltiples, si tenemos un subprocesoUn subproceso, se llama a una función C en este subproceso y queremos implementar esta función C como ejecución asincrónica, y la ejecución asincrónica debe admitir subprocesos múltiples si estamos escribiendo un programa en Windows; en WINAPI CreateThread(__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,__in Size_T dwStackSize,__in LPTHREAD_START_ROUTINE lpStartAddress,__in_opt LPVOID lpParameter,__in DWORD dwCreationFlags,__out_opt LPDWORD lpTh readId); Luego, podemos implementar una función FuncC asincrónica de la siguiente manera: (1) Primero escriba el trabajo que desea completar de forma asincrónica como una función separada, como DWORD WINAPI AsyncronousThread(LPVOID lpParameter // thread data){...} (2) Usar la función CreateThtread en la función FuncC para crear un hilo a partir de la función en (1) y luego regresar directamente. CreateThread(....,AsyncronousThread,...);return;} Por supuesto, hay muchas formas de escribir una función asincrónica, pero una esencia no cambiará, es decir, debe implementarse en base a subprocesos múltiples.