Partilhar via


Multithreading

Em sistemas operativos multithread, os drivers devem ser seguros para execução simultânea. Ou seja, deve ser possível que as aplicações usem o mesmo handle em mais do que um thread. A forma como isto é conseguido depende de cada driver, e é provável que os drivers serializem quaisquer tentativas de usar simultaneamente o mesmo handle em dois threads diferentes.

As aplicações utilizam frequentemente múltiplas threads em vez de processamento assíncrono. A aplicação cria um thread separado, chama uma função ODBC nele e depois continua o processamento no thread principal. Em vez de ter de consultar continuamente a função assíncrona, como acontece quando o atributo da instrução SQL_ATTR_ASYNC_ENABLE é utilizado, a aplicação pode simplesmente deixar a thread recém-criada terminar.

Funções que aceitam um handle de instrução e estão a correr num thread podem ser canceladas ao chamar SQLCancel com o mesmo handle de instrução a partir de outro thread. Embora os drivers não devam serializar o uso do SQLCancel desta forma, não há garantia de que chamar SQLCancel vá realmente cancelar a função a correr na outra thread.