我不是一个用过的 C# 程序员,所以如果这很愚蠢,对不起:-)
我正在为 Windows 8 开发 C# 应用程序。我需要执行 Web 请求,因此,我有一个回调来处理请求数据。
我正在使用标准方法:
private static ManualResetEvent allDone = new ManualResetEvent(false);
private static void daCallback(IAsyncResult data) {
...
SampleDataSource.allDone.Set();
}
// This is the Class CONSTRUCTOR
public SampleDataSource() {
# before anything, reset allDone:
string request = "http://some.url.com";
HttpWebRequest webRequest = WebRequest.Create(request) as HttpWebRequest;
webRequest.Method = "POST";
webRequest.BeginGetResponse(new AsyncCallback(daCallback), webRequest);
Debug.WriteLine("Asked to begin get response");
SampleDataSource.allDone.WaitOne(12000);
Debug.WriteLine("Done Waiting");
#...
}
运行时,allDone(do_something 内部)未初始化。我什至添加了一个条件来比较 allDone 和 null,是的,它是 null。
“等待完成”消息永远不会被打印出来......
我究竟做错了什么?
谢谢