2011-08-05 5 views
1

나는이 지시어와 영문을 알 수 있습니까 내가 어떤 방식으로 중단 점을 넣으면어떻게 제대로

..... 

private readonly Action<string> zipArquivoAction; 

public Logs_Logs() 
{ 
    zipArquivoAction = ZipArquivo; 
} 

protected void LkbGZip_Click(object sender, EventArgs e) 
{ 
    LinkButton lkbGZip = (LinkButton) sender; 
    AddOnPreRenderCompleteAsync(BeginAsyncOperation, EndAsyncOperation, lkbGZip.CommandArgument); 
} 

IAsyncResult BeginAsyncOperation(object sender, EventArgs e, AsyncCallback cb, object state) 
{ 
    return zipArquivoAction.BeginInvoke((string)state, cb, state); 
} 

void EndAsyncOperation(IAsyncResult ar) 
{ 
    zipArquivoAction.EndInvoke(ar); 
} 

private void ZipArquivo(string arquivoCaminho) 
{ 
    System.Threading.Thread.Sleep(10000); 
} 

System.Threading.Thread.CurrentThread를 호출하면 항상 동일한 스레드를 반환합니다. 즉, IO 스레드를 사용하지 않는다는 의미입니다.

답변

1

추적을 켜고 Begin AsyncOperation 및 End AsyncOperation 호출을 찾습니다. End PreRender 뒤에 나타나야합니다. 더 참조하십시오

Async page trace screenshot

:

Asynchronous Pages in ASP.NET 2.0

+0

내 추적 보여 그나마 어떤 BeginAsyncOperation 내가 잘못 뭐하는 거지 =/ ? –

+1

나는 그가 Trace에게 수동으로 그렇게 생각했다. 범주가 비어 있습니다. –

+0

Fujiy 님의 덧글에 덧붙여 Trace.Write ("BeginAsyncOperation"); 및 Trace.Write ("EndAsyncOperation"); BeginAsyncOperation() 및 EndAsyncOperation() 각각에서 위의 스크린 샷과 같이 추적보기의 항목을 볼 수 있습니다. –