Programming/.NET
ADO 등 ADO.NET 이전버전에서 Data 를 처리할때 방식은 다음 명령이 실행되기 위해 이전 명령이 처리완료될때까지 대기하는 순차적인 처리방식이었습니다. 그러나 ADO.NET 2.0 이래 사용자들은 데이터베이스 명령을 비동기적으로 처리할 수 있게 되었습니다. 이것은 애플리케이션이 처리완료까지 대기할 필요없이 다음 명령을 실행할 수 있다는 것을 의미하며 특히 서로 종속되지 않는 다중 데이터소스에 접근시 유용하게 대응할 수 있는 방안을 제시합니다.

 SqlCommand

SqlCommand 클래스에서 지원하는 비동기 메소드는 아래와 같습니다.

 Method  설명
 BeginExecuteNonQuery() 결과값을 반환하지 않는 쿼리를 비동기적으로 수행하는 메소드입니다. 메소드 처리 결과는 IAsyncResult 인터페이스를 구현하는 객체를 반환하며참조하며 해당 객체는 메소드가 동작하거나 처리가 완료되는 시점을 감지할 수 있는 용도로 사용될 수 있습니다.
 BeginExecuteNonQuery (callback, stateObject) 오버로드된 메소드로서 비동기 처리를 수행하며 AsynchCallback 인터페이스의 객체를 전달받습니다. 메소드에서 callback Parameter 는 메소드의 처리가 끝난 후 호출되는 것으로 완료대기없이 callback 으로 전달되는 메소드 처리를 진행할 수 있도록 합니다. 두번째 Parameter 인 사용자 정의 객체를 전달받는데 이 객체는 callback 메소드에 자동적으로 전달됩니다. callback 메소드는 IAsyncResult 인터페이스의 AsyncState 속성을 통해 사용자 장의 객체의 상태를 확인할 수 있습니다.
 EndExecuteNonQuery (asyncResult) BeginExecuteNonQuery 메소드로 부터 결과를 엑세스하는데 사용되며 BeginExecuteNonQuery 를 호출할때 반환된 lAsyncResult 객체전달을 전달합니다. 메소드실행의 결과값으로는 적용된 Row 수를 반환합니다.
 BeginExecuteReader 결과집합을 반환하는 쿼리를 비동기로 수행한다는 차이점만 제외하면 BeginExecuteNonQuery 메소드와 동일합니다.
 BeginExecuteReader (commandBehavior) BeginExecuteReader 메소드와 동일하나 commandBehavior Parameter 를 가집니다.
 BeginExecuteReader (callback, stateObject) BeginExecuteReader 메소드와 기본적인 동작이 같으며 Paramter 는 BeginExecuteNonQuery 의 경우와 같습니다.
 BeginExecuteReader (callback, stateObject, commandBehavior) 이 오버로드된 메소드는 AsyncCallback 클래스의 인스턴스를 가지며 이것을 통해 프로세스가 동작을 종료할때 callback 메소드를 호출하는데 사용합니다. 두번째 Parameter 는 callback 메소드에 전달하기 위한 사용자 객체이며 세번째 Paramter 는 동기 ExecuteReader 메소드와 같은 command behavior 열거형을 사용합니다.
 EndExecuteReader 이 메소드는 BeginExecuteReader 메소드로 부터 결과를 엑세스하는데 사용되며 BeginExecuteReader 메소드를 호출할때 수신된 lAsyncResult 인터페이스 객체를 전달해야 합니다. 메소드는 또한 실행결과로서 쿼리실행의 결과집합을 포함하는 SqlDataReader 객체를 반환합니다.
 BeginExecuteXmlReader BeginExecuteReader 와 같으나 XML 형태의 결과집합을 반환하는 쿼리를 수행한다는 차이가 있습니다.
 BeginExecuteXmlReader (callback, stateObject)  BeginExecuteReader (callback, stateObject) 메소드와 같습니다. 다만 XML 형식의 데이터를 받습니다.
 EndExecuteXmlReader  EndExecuteReader (callback, stateObject) 메소드와 같습니다. 다만 XML 형식의 데이터를 받습니다.

'Programming > .NET' 카테고리의 다른 글

[ASP.NET] DataSet  (0) 2014.10.06
[ASP.NET] WaitHandle  (0) 2014.10.02
[ASP.NET] SqlCommand  (0) 2014.09.20
[ASP.NET] SqlParameter  (0) 2014.09.05
[ASP.NET] ADO.NET 의 네임스페이스와 클래스  (0) 2014.09.01
[ASP.NET] LinkButton  (0) 2014.08.27
0 0