Выполнение асинхронных операций - PullRequest
0 голосов
/ 26 июля 2010

Я прочитал о выполнении асинхронных операций и обнаружил, что это можно сделать на стороне выполнения команды SQL (которая обрабатывается во время выполнения команды SQL путем добавления дескриптора ожидания, ожидающего AsynchResult) или на стороне выполнения пользовательского интерфейса (которая являетсяделается с помощью делегата, который указывает на метод, затем начинает вызывать методы асинхронно), как показано ниже:

сторона SQL (с помощью дескриптора ожидания и DELAYFOR в команде SQL): http://msdn.microsoft.com/en-US/library/yws6262h%28v=VS.80%29.aspx

пользовательский интерфейссторона: http://msdn.microsoft.com/en-US/library/2e08f6yc%28v=VS.80%29.aspx

но я не знаю, что лучше в отношении производительности и времени выполнения?

Кто-нибудь может сказать мне различия в отношении производительности?а какой метод лучше использовать эту технику или очередь очередей потоков?

Заранее спасибо

1 Ответ

1 голос
/ 26 июля 2010

Предполагается, что под "стороной SQL" вы подразумеваете методы BeginXXX EndXXX для объекта SqlCommand, а пользовательский интерфейс означает просто делегат, выполняемый асинхронно - нет разницы в производительности, предоставляемой простым использованием одного против другого.Разница в производительности между ними будет зависеть только от кода, который вы запускаете - сторона SQL будет выполнять команду только асинхронно, сторона пользовательского интерфейса может иметь много другого кода, который вы предоставляете.

В большинстве случаевВ некоторых случаях достаточно просто предоставить асинхронные действия на более высоком уровне, чем команда SQL.В некоторых случаях, например, когда ваш уровень доступа к данным хочет запустить много команд одновременно, будет полезно использовать методы SqlCommand.

Надеюсь, это где-то рядом с тем, что вы ищете.

Обратите внимание, что при выполнении делегата асинхронно (Delegate.BeginInvoke) или BeginXXX метод будет использовать поток ThreadPool.Различия между использованием делегата и пула потоков быстро описаны здесь:

http://www.toadz.dk/2010/01/delegate-begininvoke-vs-threadpool-queueuserworkitem/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...