2013-11-03 2 views
0

나는이 구현하기 위해 노력하고 있습니다 : http://martinnormark.com/google-search-suggestions-api-csharp/대체 제안 API

나는 C#을 표현을 사용하고하고 그 중 내가 비동기를 사용할 수 없습니다이기 때문에 나는, 비주얼 스튜디오 2010 SP1이없는 비동기 및 대기로 프로그래밍.

Google 검색 제안 API를 구현할 수있는 다른 방법이 있습니까?

내 프로젝트에서는 사용자가 제공 한 주요 용어에 대해 인터넷에서 관련 용어를 얻어야합니다. 나는 그것을 위해 구글 검색 제안을 사용하기로 결정했지만, 나는 지금 붙어있다. 어떤 도움을 주시면 감사하겠습니다.

미리 감사드립니다.

+0

왜 작업 연속을 사용하지 않고 계속 진행해야합니까? –

+1

작업 병렬 라이브러리를 사용 하시겠습니까? (http://msdn.microsoft.com/en-us/library/dd537609.aspx)'async'와'await'는 편리하지만 언어의 첫 번째 비동기 모델은 아닙니다. .NET 1만큼 돌아 가면 다중 처리 작업을 수행 할 수 있습니다. 또는, 비동기가 필요하지 않은 경우 구현에서 async 및 await 호출을 완전히 제거하면됩니다. (아마도이 ​​경우 큰 UX가 아닐 것입니다.) – David

+0

'Jquery UI auto-complete'로는이 작업을 수행 할 수 없습니까? – christiandev

답변

2

비동기 작업에 여전히 Task Parallel Library을 사용할 수 있습니다.

void FetchGoogleSearchResults(searchString); 
void DisplayGoogleSearchResults(results); 

첫 번째 방법은 두 번째 전화를 내부적 것 : 여기 너무 많은 구현 세부 사항으로하지 않고,의 당신이 개별 구성 요소로 기능을 깨지 메소드 서명의 몇 가지가 있다고 가정 해 보자. 정의/구현 방법에서 이러한 방법 중 하나에 대해 본질적으로 비동기적인 것은 없습니다. 그들은 당신이 원한다면 다른 어떤 사람들과 동 기적으로도 불릴 수있는 정상적인 방법입니다.

그런 다음 첫 번째 방법을 비동기 적으로 수행 할 수 있습니다. 두 번째 방법 인 sort of은 완료시 콜백 역할을합니다.

Task.Run(() => FetchGoogleSearchResults("some search string")); 

구글 결과의 인출에 대한 스레드를 포크해야합니다. (그냥 그것의 스레드에서 수행하는 마지막으로, 비동기 적으로하지 않는)이 같은 첫 번째 방법을 호출 할 수 있습니다 (병목 현상이므로 스레드에 있어야 함) 스레드가 완료되면 해당 스레드에 결과가 표시됩니다.

+0

답변을 주셔서 감사합니다. 나는 그것을 구현하려고합니다. 답변을 곧 답변으로 표시하겠습니다. +1이 추가되었습니다. –

+0

필자는 아직 새것이기 때문에 구현을 시도했는데, 매우 열심히 느끼고 코딩 예제를 제공해 주시겠습니까? 감사! –