【发布时间】:2011-09-06 06:03:28
【问题描述】:
这是我的代码(它是 Silverlight!):
public class ThreadTester
{
public void Test()
{
Debug.WriteLine("Outer thread start");
ThreadPool.QueueUserWorkItem(x => RunInner());
Thread.Sleep(2000);
Debug.WriteLine("Outer thread end");
}
private void RunInner()
{
Debug.WriteLine("Inner thread start");
BL bl = new BL();
bl.Run1(AssyncCallback);
Debug.WriteLine("Inner thread end");
}
public void AssyncCallback(IAsyncResult ar)
{
Debug.WriteLine("Async Callback called!");
}
}
public class BL
{
public void Run1(AsyncCallback callback)
{
WebRequest req = WebRequest.Create(@"http://microsoft.com");
req.BeginGetResponse(callback, null);
}
}
这是我在输出窗口中得到的:
Outer thread start
Inner thread start
Outer thread end
Inner thread end
Async Callback called!
任何想法为什么它会这样工作?不应该吗
Outer thread start
Inner thread start
Async Callback called!
Inner thread end
Outer thread end
主要强调回调调用。
提前致谢
【问题讨论】:
标签: c# silverlight asynchronous callback webrequest