我不是一个用过的 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。
“等待完成”消息永远不会被打印出来......
我究竟做错了什么?
谢谢