2012-03-02 4 views
1

AsyncCtpLibrary v.3을 추가했습니다. 비동기 웹 페이지에서 샘플 코드를 얻었습니다. TestFixture로 감싸서 놀았습니다.async와 (과) 오류가 발생했습니다.

오류가 발생합니다. 이유가 무엇입니까?

오류 1 - 유효하지 않은 토큰, 구조체, 클래스 '무효'또는 인터페이스 멤버 선언

오류 2 -; 당신은 단순히 프로젝트에 .DLL을 추가 할 수 있으며 작업 한

[TestFixture] 
public class AsyncTests 
{ 
    [Test] 
    public async void AsyncRunCpu() 
    { 
     Console.WriteLine("On the UI thread."); 

     int result = await TaskEx.Run(
      () => 
       { 
        Console.WriteLine("Starting CPU-intensive work on background thread..."); 
        int work = DoCpuIntensiveWork(); 
        Console.WriteLine("Done with CPU-intensive work!"); 
        return work; 
       }); 

     Console.WriteLine("Back on the UI thread. Result is {0}.", result); 
    } 

    public int DoCpuIntensiveWork() 
    { 
     // Simulate some CPU-bound work on the background thread: 
     Thread.Sleep(5000); 
     return 123; 
    } 
} 
+0

비동기/대기 키워드로 VS11을 사용하고 있다고 가정합니다. 많은 차이를 만들지는 모르지만 새로운 Task.Factory.StartNew를 사용해보십시오. 또한 Run 명령 뒤에 .Result를 추가하십시오. .Result는 작업 반환 형식입니다.이 경우에는 int – Jon

+1

'내 문서'에 비동기 CTP 폴더가 있는지 확인하십시오. 비동기 CTP (http://social.msdn.microsoft.com/Forums/en-US/async/threads)에서 많은 설치 문제가있었습니다. 그것은 비동기 CTP가 다른 VS 업데이트를 방해하는 대역 외 업데이트라는 사실로 귀결됩니다. 이 시점에서 (VS11이 임박한 상태에서) 설치 관리자를 고칠 가능성은 거의 없다고 생각합니다. VS11이 출시되면 비동기 CTP가 풀려 더 이상 사용할 수 없게됩니다. –

답변

0

를 내가 있어야 할 것 같아요 : (마지막 서비스 팩 처음부터 모든 Visual Studio 업데이트를 제거하거나 이후에 당신은 업데이트를 다시 설치할 수 있습니다 성공하지 못합니다 설치합니다..) :

[Test] 
public async Task AsyncRunCpu() 
{ 
    // ... 
} 

로 지금까지는 void 리턴 타입을 가진 비동기 메소드가 어떤 식 으로든 특별하다는 것을 알 수 있습니다. 컴파일러가 이런 종류의 시나리오에 대해 경고를 내지 않는지 궁금합니다 ...

async/await with .NET4 .0, 단지 프로젝트에 Microsoft.BCL.Async에 대한 참조를 추가하십시오. 유일한 차이점은 일부 Task 관련 기능이 TaskEx 유형에 있다는 것입니다.

4

: 비동기 CTP는 C# 언어의 구문을 확장, "정상적인"컴파일러하지 않는

코드는 예상 필요한 런타임 어셈블리가 있더라도 새 키워드를 이해하십시오. 공식 설치 프로그램을 사용하여 설치해야합니다.

+1

VS11 베타 버전을 사용할 수있는 경우 비동기 CTP를 사용해야하는 이유는 무엇입니까? VS10 설치에 영향을 미치지 않을 것 같습니다. –

+0

@JonSkeet 비동기 CTP가 없으면 런타임시 .NET 4.5가 필요합니다. 맞습니까? 반드시 나쁜 것은 아니지만 염두에 두어야 할 것이 있습니다. – hvd

+0

나는 개인적으로 Async CTP를 현재 제작에 사용하지는 않을 것입니다. 너무 많은 문제가 있습니다. 확실히 베타 버전으로 작업 할 것입니다. –

관련 문제